I also think 16k is too big.
You could write Starcraft in that size.
A variation is to make a seperation between assets and code, where
16kb can be used for Graphics and sounds, but no sourcecode. (-> i mean bytecode here of course)
(Although someone would write a tricky compiler then, using the art-assets as scriptlanguage, or something like that)
8kb might be a good compromize between clean programming and still hovering limitations.
Yet leaving enough room to make a propper full game. (menus, helptext, and especially soundfx, wich often are missing from the 4k games)
Another idea for a contest limitation: Predefined artwork.
Where there can only be the provided artwork be used, with a limit of the dynamic objects drawn or so.
It could be like rendering the gameworld only with specific tiles from a free game.
Or putting a limitation of using only 3 specific colors for the game.
But these contest have been done before I suppose.