From my point of view, if something is designed to be changed, It can not be used as an ID anymore – because it can be changed.
That problem was introduced when the “Timestamp” $:/config/TimestampDisable configuration was introduced. Created can not be “trusted” anymore. Created and modified are just fields that are used for “user-specific” sorting. So it looks nice in the UI. That’s their new use-case now.
If we need a UID it has to be designed to be created once. One rule needs to be: There is only one place in the core that defines that value, then it is never touched again.