Because :w and :wq are two different commands with different options.
Here is the description of the :w command with the !{cmd} option:
:[range]w[rite] [++opt] !{cmd}
Execute {cmd} with [range] lines as standard input
(note the space in front of the '!'). {cmd} is
executed like with ":!{cmd}", any '!' is replaced with
the previous command |:!|.
Note that :w! and :w !{cmd} are two completely different things; in the former, exclamation mark means "force write", in the latter it is a sort of a pipe sign to pass the whole range of text to the subsequent command (in your case, to tee run as superuser, which both returns the file to vi and saves it to the filename represented by the wildcard %).
Sadly, there is no such option for the command :wq. The only other available forms of this command are :wq! (here the exclamation mark is not for piping to another command, but for force quit, much like :w!) and :w[!] {file}.
commentand ask those guys on stackoverflow.com/questions/1005/… but don't have enoughreputationto leave a comment. – Hussain Tamboli Oct 11 '12 at 13:11randomwordsincodeformattingmakesyourquestionshardertoread. Use italics or bold for ordinary text, if necessary, please. – Mat Oct 11 '12 at 13:30code, right? Don't mind me asking it here instead of meta. – Hussain Tamboli Oct 11 '12 at 13:34vim(i.e. command names that are also the app's name), I'd leave it in plain text when it's included in a plain sentence (e.g. "I use vim to do wonderful things"), but put code markings around it if it's part of a command (e.g. "When I runvim -d ...foo happens"). – Mat Oct 11 '12 at 13:38