> Indentation weakens the language.
The goal of a syntax is to, first and foremost, promote human readability. Python philosophy is to discourage clever code. Many, like myself, find consistent indentation and low character noise to be more readable. If you don't, that's fine. It is a preference. If you like complete flexibility, go with Lisp (or Hy in Python), since its minimal syntax gives maximal power of expression - we all should, if it was all about power. But we don't. I prefer reading Python than Lisp, most of the time. We all like a balance between a helpful syntax and maximal expressive power. Where we individually draw the line differs.
> Everyone formats their code but forcing it makes for a less powerful language, so why do such idiocy?
It's not idiocy; it was clever and it was a well-considered choice. We already indent anyway. So why not codify that into syntactic rules, thereby making the language more clean to read? Python tries to get rid of needless punctuation. We write single line expressions/statements most of the time. So Python (and many others) makes them the default by making the semi-colon optional and instead provides a back-slash if you want multi-line code.
I used/tried every major modern language. I find Python to be the simplest and cleanest to read (many functional languages do a good job as well). That's a preference of course. I like Boo over C# because it has a Python-like indentation syntax. YMMV.
Nimrod, Delight, Converge and Cobra are other lesser known programming languages that use indentation syntax. Haskell uses it to some degree.
When I first saw Python and indentation syntax some 15 years ago, I thought: How clever... and immediately got used to it. Some don't and never get over it. Some get the same feeling with Lisp, but I didn't, even though I acknowledge the arguments. It's a preference.