Hearing jam saying "vila, you're trying too hard", I simplified again.
* bzrlib/transport/sftp.py:
(SFTPUrlHandling): Simplified to the point only _remote_path
remains at which point _remote_path have been put under
SFTPTransport and the class itself deleted.
(SFTPTransport._remote_path): This is the only point where home
dir related processing needs to occur. (another use case for
tracking moving lines).
* bzrlib/tests/test_sftp_transport.py:
(SFTPTransportTestRelativeRoot.test__remote_path_relative_root):
Internally we use '/~/' to indicate home dir relative paths, only
_remote_path will strip that.