Alex, it isn’t true that whitespace-as-syntax should complicate metaprogramming. A good metaprogramming system (e.g. LeMP, Nemerle..) operates on syntax trees, not raw text, so it simply doesn’t matter what the text representation is.
One problem that Python-style whitespace-as-syntax does cause is trouble pasting on the web, since many web sites don’t support initial whitespace. In my language designs I solve this problem by allowing dot-space in place of two spaces so that indentation can be preserved in contexts that otherwise don’t support it, e.g.
. if x > y {
. . x = y
. }