Unless you're developing for those players you cannot judge their usefulness.
It's like claiming that Qt isn't needed because there is GTK.
Not all applications are developed the same way and not all applications have the same kind of code. Mplayer for example cannot be easily extended to handle menus because of the way it is programmed, so forget proper DVD playback on Mplayer. VLC on the other hand works great with menus but may be slower than mplayer. As you can see you win something - you lose something.
For some, it is better to (let's say) write another media player just to fix this kind of problems. For others it is better to have more than one players because of their license (OK, both mplayer and vlc are GPLv2+). It is even possible to need more than one players just to handle different development models. Unless you are able to predict which development model, code organization, community behavior, etc will prevail, you cannot judge. And as long as you're a simple user of those players (just like I am), you may (at-most) use them. If you start writing code for one of them then you can try to unite all of them under a universal player that will be everything, but I doubt that this is possible.