It appears that
"12. If result uses a scheme with a server-based naming authority, replace all U+005C REVERSE SOLIDUS (\) characters in result with U+002F SOLIDUS (/) characters."
will never be reached as \ is invalid in URIs, and step 10 is:
"10. Apply any relevant conformance criteria of RFC 3986 and RFC 3987, returning an error and aborting these steps if appropriate. [RFC3986] [RFC3987]".
(To be clear: I'm just pointing out a potential bug in the algorithm; personally I'd prefer not to try rewriting \ in general).
Yes, there's all kinds of errors in this algorithm. The idea is to have the algorithm replaced by a reference to a specification that defines how to parse URLs.
See also bug 12543.
*** This bug has been marked as a duplicate of bug 12543 ***