Your approach shows how flexible really simple solutions can be. Sounds like you are using those strings of digits as markers / bookmarks rather than IDs, which should still keep such “links” relatively reliable when referring notes from outside. You are just sacrificing a bit of speed but gaining extra context when searching.
Personally, I prefer to rely on standard wiki-links to keep traces of refactoring within my Obsidian vault. Refactoring is always a dangerous moment regardless of the linking mechanism in use as it’s meaning that’s getting shifted around. I find that most references I make from outside are either ephemeral (tasks in task manager for example that will be closed in a matter of days, so I may even use obsidian://
links for those) or they are links to notes with relatively “fixed” meaning: project hubs, lists, literature/reference notes for particular sources, howto’s for particular problems etc. I may move things around and add content in those notes but their general meaning remains the same. When I feel I’m stepping into a dangerous territory, I may do a system-wide search to see what I was linking to and why, pick refactoring strategy accordingly or adjust those links.
As for IDs, I prefer to keep them a 1-time instance in my system so they are actually unique and there is no ambiguity when searching. It ensures a direct 1 to 1 link when referring from outside. I also keep them in a fixed place in a fixed format for the ease of programmatic access in case I need it.
I don’t see why bookmark and ID approaches can’t be used simultaneously though. It would only take adding something extra to the main permanent ID to make a search for it unique. uid:20200529153042
or L_20200529153042
would only return one result but 20200529153042
markers would then return both the original note and all the references to it within the vault.