(In reply to both JL and AB)
The point regarding backwards compatibility is well-taken, I wouldn't want to mess with that at all. However, cognitive dissonance in code is a particular bugbear of mine. I am especially nervous (in general) of situations where one thing is used to *sematically* represent a different kind of thing. "=None" and "=False" behaving differently in this case makes me uncomfortable. Imagine that the argument was called something like "extension_override" and then you should be able to see my concern more clearly. Still, it isn't a big deal. I can live with the current behaviour. As JL says, "=None" is almost idiomatic in Python to represent "default" behaviour, not necessarily the value "None". Perhaps my gripe is with the idiom rather than web2py specifically.