Well pipelining into Svn's HTTP 1.1 interface does work as you suggested.
There is a library in Python called 'hyper' that does it - http://hyper.readthedocs.io/en/latest/quickstart.html#streams though the example get_response signature is not current (I raised a bug). Also, if I change HTTPConnection to HTTP11Connection it works, but not if I change to HTTP20Connection (ConnectionResetError) so I think I'll just leave my implementation as it is - mechanically recursing through MKCOL operations over a single reused connection.