This wouldn't be possible without fixed width. Now a lot of languages don't use that kind of indenting a lot, but in lisps it's mandatory.
Also fixed width ensures that you can write code and it will lay in the same way on other computers, regardless of what other fixed width font they're using. That's a big big point i think, since code is most of the time a collaborative effort
I agree, but I think it would be possible to have proportional text aligned properly if you are working above the level of raw text, as in with sexps in paredit.
There are good heuristics for checking whether spaces are being used for indentation. You can look at where they appear in the line, for one thing, and whether they're in clumps of two or more for another. In those cases it would be simple enough to make them align perfectly with the characters above/below them.
Of course, you'd have to decide which to do - above or below. There are reasonable heuristics for that, but they're probably more complicated and less accurate.
The nice thing about doing it this way is that it degrades perfectly when the code is viewed in fixed-width (which is good for tools and other developers).
Also fixed width ensures that you can write code and it will lay in the same way on other computers, regardless of what other fixed width font they're using. That's a big big point i think, since code is most of the time a collaborative effort