I suppose any reasonable browser can play off a HTTP stream. I not so sure it would be able to navigate in the stream easily (like clicking at a particular time on the progress bar), because the bitrate is highly variable.
Dynamic bitrate is the main one - the browser & server coordinate to figure out the highest video quality the user can watch without stuttering/buffering.
The client can do that 100% client side, you can serve pure static files with a JS player that handles the streaming. All you have to do is chunk the video into small 2-5 second chunks at a variety of nitrates and list them all in an .m3u8 playlist file if the right format.
Adaptive bitrate selection seems important if your clients have narrow or unstable bandwidth (e.g. mobile), or when you may get constrained by outgoing bandwidth (/. effect aka HN crowd).
imo this is mainly due to the constraint of keeping clientside pre-buffering as low as possible.
sending the whole file at network-speed usually works fine, but maybe uneconomical at scale especially if coupled with users that skip a lot and tend to not watch the whole thing anyway.
What else am I missing?