re #1: This is basically because it's written into the standard that everyone implements. There are non-standardized extensions to get around this that nobody implements because they're non-standard and a perpetual "This will be fixed by the next standard!". There are also codecs that mitigate the issue by solving the underlying bandwidth problem, but nobody implements those because there's licensing and thus it's not universal. All of this is made worse by the fact that there's really only a few vendors out there. Almost everyone buys the same stuff, which makes the same tradeoffs and the result is that everything sucks in basically the same ways.