Neat! One problem I can see is that query strings aren't dictionaries, so valid parameters can vanish:
>>> furl('http://www.example.com?foo=1&foo=2')
furl('http://www.example.com?foo=1')
See Werkzeug's MultiDict for one way to handle this correctly.