Hardly. We use this reduction because it's essential from a mathematical and axiomatic perspective and because limits are a fundamental construct. But more philosophically, a natural and nonterminating simulation of 0.999... (were it possible) would never strictly equal 1. You would wait an infinite amount of time for it to do so. This comes down to how you view the problem. I would never argue with this through the lens of abstract higher mathematics. I think about it from a computability perspective, which is one way in which you can discount the observation.
Your "proofs" simply assumes that 0.999... is a notation denoting 1, without examining the underpinnings which might legitimize that.
9.999.. - 0.999 is 9 no matter how we define .999... just as long as two or more occurrences of the 0.999... notation all denote the same entity, and we understand that the syntax 9.999... is 9 + 0.999...
For example, if we define 0.999... as "rubber duck" then 9.999... stands for 9 + "rubber duck", and 9.999... - 0.999... stands for 9 + "rubber duck" - "rubber duck" = 9.
You are discarding an essential part of the representation. You are moving the goal post to make yourself right. Just because people don't always understand infinitesimals doesn't make them right. It's the reason they are wrong. There just plain don't know what they are talking about.
You can't represent 0.2 exactly using IEEE floats, either, but that doesn't mean the representation 0.2 is not exactly equal to 1/5th.