Well, for hyperreal numbers it's still true that every real number can be represented as a countably infinite string. The proof will still work fine if you say "the real number with expansion 0.9999...". In the hyperreals, given that not every value can be expressed as a decimal string, we'd need to establish what "0.9999..." meant before further commenting on the proof.
---
lcamtuf proposes treating 0.9999... as a representation of a hyperreal number in the halo of 1, which raises some notational questions. The logical extension of the notation in my mind would, given an assumed infinitesimal value epsilon, represent epsilon as 0.000000... -| (barrier between real and infinitesimal decimal places) |- ...00001 . It's not obvious to me how you'd work with the representation 0.000000... | 1000... (what's 1 + 20ε?).
But I don't think my instinct works either, because you can grade the levels of infiniteness more finely than you have room in a countable string to represent. (This is just a gut feeling.)
Going with a more formal definition, you could take the new decimal places as representing coefficients of 10^{-N}, where N is an infinite hypernatural number, but since those have no beginning or end it's not at all clear where you'd position the coefficients.
On the other hand, I don't really see the conceptual problem with treating 0.9999... as a value that is infinitely close to 1. What bothers me the most at that level is the comment somewhere in the thread asking, given the established infinitesimal difference between 0.99999... and 9/9, what's the difference between 0.33333... and 3/9? lcamtuf's derivation works the same way, suggesting that a difference exists. And you can say that it does; you could just declare that rational numbers with prime factors other than 2 and 5 in the denominator have no exact representation in the decimal system.
But there's no demand for this. People don't seem to have the same problem with the idea that 0.33333... is 1/3 as they do with the idea that 0.99999... is 3/3.
That is indeed true for real numbers, but not for hyper-reals (https://en.m.wikipedia.org/wiki/Hyperreal_number), which is what I had in mind when I originally said that it was not obvious.