You're right that Elvis is more featureful in some ways, but the main thing is UTF-8:
nvi handles it properly and Elvis doesn't really. For a default /usr/bin/vi on a modern system, that matters more than extra features. That's likely the main reason Slackware switched from Elvis to nvi.