Generally, the verifiability constraint precludes historical data. There is a separate project for historical information.
If the disused amenity still has the old signs up then it is still generally acceptable to maintain the name=* name=\* tag as is. If something is still widely referred to by the old name, but the name displayed has changed then old_name=* old_name=\* can be used to show it.
The disused: prefix is normally used if the old purposes is still visible but clearly not current.
In your e.g. 1 a simple change of name would normally be OK, but if the old name is still referred to frequently I'd normally keep the old name as old_name. This would apply to the existing object.
In e.g. 2 a similar approach would be used. Change the tags that are no longer relevant and delete those no longer applicable (unless you can see the 'scars'). The changeset history contains the old info if someone really wants to go digging.
One case often accepted as an exception to the above is if satallite or e.g. Mapillary imagery shows out of date info that may be re-added by 'armchair' mappers. Here the residual data with lifecycle prefixes is often accepted as preferable to a potential edit war. (NB this is usually more applicable to demolished:building=* as the foundations may be overgrown long before the imagery updates.)