This is almost the very definition of “perfect”.
Also, it’s not lying or misleading if you are up front with how it works.
Because you cannot perfectly detect when a version has changed, users must do it manually.
It is an objectively better end user experience to be notified that a new version is available periodically when one is not than for the user to not be notified at all under an circumstances. Therefore yes, the perfect is the enemy of the good here.
OK, that doesn’t bother me as much then. However, I wouldn’t want this to hold up being able to do Thing templates overall. If it’s too hard or too controversial I’d rather see that dropped and have to manually define the parameters like we have to everywhere else rather than have no templates at all.
Note, if there is no existing registry to store this in, that doesn’t mean a new registry couldn’t be created to store this information in. I personally do not see why it’s not possible to add a field to the JSONDB entry for rule templates, widgets, transformations, and block libraries to record the install time. Indeed I see that bundles are a problem but none of the issues you’ve brought up so far applies to these other entities. As far as I can tell, those JSONDB files are only written to when you actively add or remove.
And these Thing templates will need a brand new registry anyway, so even if you can only do this for Thing Templates now it’s a start.