Some more things that should be changed:

* Normalization should strip leading `.` or `..` from paths. RFC 3986 specifies that a path of should be normalized to `/foo`, see [section
* An empty authority should lead to an empty host and not a `n``l host, as a nil host would mean no authority.
* The `file:` scheme should treat no authority the same way as an empty authority as per [RFC 8089 section
* Since is nicer to read to it can be considered to switch using no authority instead of an empty authority when using `fileURIWithPath:`.
* Since the `objfw-embedded:` scheme is not really hierarchical, it should be changed to not use an authority and not start paths with `/`, so that it can be treated as opaque.