> The second comment touches on how just because the limit of something approaches 0, you can't treat it as 0.
I think this one is a little more subtle. You can definitely treat the limit of something as an exact value.
If you split a segment of unit length into n segments, then each segment has length 1/n. As n goes to infinity, 1/n goes to zero. But at the limit, 1/n = 0, exactly. Not approximately, really exactly, and there is nothing wrong with defining lim[n->inf] 1/n = 0 and using that in a calculation. It's no different than saying lim[n->inf] sum[k=1..n] 2^-k = 1 as you did in the first paragraph.
The problem is slightly different. The person conceives of a sequence of `n` copies of `1/n`. For any finite value of n, these add up to 1 of course; it's just the result of calculating `n × 1/n`. But at the limit, they pull a trick: they say lim[n->inf] 1/n = 0 (which is correct) therefore any sum of these values is 0 too. But we never had lim[n->inf] 1/n, we had lim[n->inf] (n × 1/n) instead!
If you put it in mathematical terms, the argument is:
lim[n->inf] (n × 1/n) =
(lim[n->inf] n) × (lim[n->inf] 1/n) = 0
Which has two problems: first, you can't split up a limit like that, so the first step is already invalid. Second, even if it were valid, lim[n->inf] n = infinity, which is not a number, so you can't multiply with it, and the conclusion that the result is 0 is wrong. You might think `x × 0 = 0` for any x, but that's only true if x is actually a number; if x is not a number the answer is undefined.
This is a similar kind of fallacy that underlies the proof that pi=4, here: http://www.kevinhouston.net/blog/2011/03/pi-is-4-video/, where the author (intentionally) confuses the perimeter of the limit (pi) with the limit of the perimeter (4).