I tend to follow a ‘cascade’ type of upgrade pattern, one gets a new part and the replaced piece gets put into another where possible. At some point though it ends up as to upgrade this one part I need to also swap several others to support it. So it kind of becomes a ‘Ship of Theseus’ situation in many cases.
The real question of when is something useless though, it comes to a combination of a security thing (can I run a modern supported OS in a reasonably performant fashion) and if the function it served can be done on some other existing system (via virtual machines/containers usually) making it entirely redundant.