some month ago, i needed to find a way to clear my claims tab. i disliked to selfdestruct, so i outfitted an eagle, and took it to a high intensity RES. but unluckily came back for ammo with more bounties , than the a-class eagle costs. pve i can now take out anacondas in an eagle, especially with the help of system security or rocks. today i took an eagle for planetary exploration - no ship flies a canyon like an eagle (beside a courier), and it can land where your can't land with an Asp (tested).
so, if we talk pve, the eagle is far from being "useless". sure, you can collect bounties more "efficient" in a vulture, or FAS. but, you don't have to.
can't say much about the viper - i only flew it for some hours. but i saw videos of pvp combat - stealth build viper, FAOFF viper, where really amazing pilots could take down FAS, or Anacondas.
btw.: i just made the experience last weekend, that running a lot of missions of every kind, my (beloved) cobra gets everything done faster than my (beloved) python. the python is simply overpowered 90% of all time. okay, you can clear out a distress call. want to run missions? get a cobra.... and there is no content ingame which you can't experience in a cobra. you should be able to get into an a-class cobra (my two cobras are 11 mio each) in 20 hours, but can be done much much faster. anyway, i don't see a necessity in elit dangerous to upgrade behind that point.
if we talk pvp, as others in this thread have pointed out, a wing of small ships can be deadly (to the point of shield down/ highwake out)- and i think, that's balanced. i see no reason why a single small combat ship should be as threatening as a big combat ship.