I was meaning to respond to the safe: vs safe://.
Technically, safe: is not a URL. So, when dropping the //, you’d actually be dropping URL support. The // is part of the hierarchy and defines the ‘authority’. Both of these are URIs, but not URLs. This is stated in the RFC (the top one is the URL)[1]:
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
| _____________________|__
/ \ / \
urn:example:animal:ferret:nose
When talking about standards I think it’s very important to be correct about the terms and usage. Especially with these long-standing standards that are fundamental to the web.
I couldn’t have said it better. Every deviation at this fundamental level will cause lots of consequences in implementations for years to come.