eggy, it would have to be a module that uses it's own db and hooks into the user join. There isn't a good chance that it would be a core feature any time soon because it would require a db change.
It's far easier to have what few owners that don't want +q to to use a script to set -q. Our job as Network Admins is to think about the network as a whole and what is best for the network environment. Resource usage is paramount. We can't cater to everyone, never please everyone .. the only thing we can do is what is best for the network as a whole and sometimes that means ignoring user requests. As a general rule, if a user requests something that can be accomplished with a client script or bot, it's best to let them do that.
That said, it would be far more resource intensive for services to handle this than a client script because the script is triggered on an event that happens to a single user whereas a services module would have to hook every single time every single user joins every single channel, so a client script is the best solution at this time.
casey, that isn't a per channel solution, inspircd's chanprotect module doesn't de/activate chanmode +q that way.