It's done automagically for me in Python and Haskell, too. Instead of hitting the paren keys in Emacs, I just hit tab to cycle through the possibilities.
Because the Lisps have such a canonical way to indent them, in practise it feels very similar to significant whitespace with a funny input method.
Normally, hitting tab just insert another \t wherever your cursor happens to be. Hitting tab in haskell-mode or python-mode just cycles through the two or three (or sometimes one) possibility for indentation for the current line. That's automagically enough for me.
Because the Lisps have such a canonical way to indent them, in practise it feels very similar to significant whitespace with a funny input method.