My biggest beef with whitespace having syntactic significance is every developer wants to see different levels of indent, and every editor seems to have its own special way of writing out whitespace. They're not always compatible, and making them all work together can be a pain in the ass (for instance, emacs and vi are notorious for doing it differently, and emacs does it in a way which breaks vi).
I may want tabs at 8 spaces, you might want them at four
Fair point about the different types of whitespace. It does require a strict up-front policy. Though having dealt with the differences between VI, Emacs, and Kate (I tried to get him to change editors), I just wrote a quick script that converts, mapped it to a key, and never really thought of it again. To be fair, there wouldn't be a need for that script for other languages.
That, and whitespace having syntactic significance flies in the face of context-free grammars and everything I learned in compilers. If you disagree with the "Dragon Book" by Aho, Sethi, and Ullman
I have never dealt with compilers, so
There's a large amount of whitespace characters, which don't all display the same in every tool -- and, in my opinion, it makes you lazy about closing actual blocks.
To me, relying on the indent level and whitespace is lazy, and something you'd have learned to do 'properly' in a Wirthian language -- where if you don't do begin/end blocks you can end up with crap code which doesn't work the way you expect.
However, I will disagree with laziness when closing blocks. Having to explicitly close a block when choosing to dedent accomplishes the same task seems redundant to me, especially in well formed code (my view from the other side of the fence!). Anybody can write crap code in any language. Perhaps python makes it easier to write the crap up front, but I can't think of a recent indentation error... But, maybe I just drink the kool-aid too much.
Recursion is the root of computation since it trades description for time.