There are many of us who can/will not use the sharing feature because it is locked down to xxxxxx.subsonic.org domain names only. You mentioned that the subsonic server would have no way of determining it's external ip/dns info as the primary reason for not changing this.
Make 2 modes. Automatic mode is the same as the current setup. Manual mode allows complete configuration of external url string prefix. Everything up to and including the optional port number should be editable. This would allow for port changes, protocol changes(such as https) and allow people to use their own dns or static ip in the url.
From a coding standpoint it seems just like adding an option that is stored with the others, and then doing some string concatenation. Best of all is that it would allow people the option if they want it, and the ease of use if they do not.