I agree that owning your own domain is not ideal either for the reasons you mention.
It is much better than a subdomain on somebody else’s server, particularly with Solid, because migration is made very difficult without the cooperation of the pod provider, and as it is not in their interests to help people leave this could be a problem at some point (cf. bait and switch).
However, I hope there will be better solutions to this. This may be one of the things which DID could help with, although I might be wrong because I haven’t followed the discussions about using DID with Solid.
My own solution to this and other issues with ‘pods as a service’ and indeed using servers at all, is to put Solid on SAFE Network. On SAFE your public name is secure, is entirely under your control (no intermediary), human readable, and never expires (no renewal fees).
I’ve built various demos of Solid apps running on SAFE including showing use of Solid apps working with a SAFE WebID. The demos are no longer live pending release of SAFE Fleming (an almost complete release of the network, for testing) but there are videos that show how various parts of this work, and there are other apps that can be tried out using SAFE IDs to check out the UI which is very nice because creation and selection of public names (IDs/domains) and websites are all integrated in the SAFE Browser.
I post updates about putting Solid on SAFE in the topic below. I’ve paused atm awaiting SAFE Fleming, to play with other things but will get back to this in the new year.