After I open something with emacsclient, when I kill that buffer (C-x k) I get a confirmation dialog:
Buffer `blah\' still has clients; kill it? (yes or no)
For whatever reason, I have to manually launch the remove-hook solution on emacs23, perhaps because certain parts of the server are loaded after the .emacs is loaded. Adding a dummy (server-start) line to my .emacs before the (remove-hook ...) did not help. So I have opted for the following, less principled solution:
(defalias 'server-kill-buffer-query-function '(lambda () t))