I believe Lynx does have a vi mode you can enable, though I might be thinking of w3m...
But the killer app for me with web browsers is link hints, like in several browser extensions (e.g. vrome, tridactyl) and in browsers like qutebrowser. It takes a little getting used to at first to use efficiently, but I hate not having it when I use Lynx or w3m.
Slightly apropos, and for what it's worth, I've noticed that 99% of my browsing seems to be or start from maybe 20 or so web sites. I've started creating shell aliases to open those sites and there is no reason not to use the best browser for the site for each one. It works well with a philosophy like seems to be the one behind the surf browser, where you open each thing in its own window and use your window manager to deal with it, instead of using tabs.
you might like elinks as alternative to lynx, but with link hints.
and those shell aliases sound very similar to surfraw: https://en.wikipedia.org/wiki/Surfraw
As someone who uses Elinks/Links a lot, I'd highly recommend switching out Elinks with Links as the former is a now-deprecated fork of the latter [0][1]
[0] https://en.wikipedia.org/wiki/ELinks#cite_note-2 [1] https://en.wikipedia.org/wiki/Links_(web_browser)#cite_note-...