All three are things pretty much all HTTP/1.1 clients have done for over a decade. It's incompatible with RFC2616, yes — but not with implementations of "HTTP/1.1".
Python's requests library maintainers insisted on sticking with this annoying and surprising rule (default charset of ISO-8859-1), because that's what the RFC says they should do. Hopefully, they'll reconsider now.
> Default charset of ISO-8859-1 has been removed
> The 204, 404, 405, 414 and 501 status codes are now cachable.
> The Location header can now contain relative uri's as well as fragment identifiers