カスタム投稿タイプは、テーマの functions.php で定義することができます。特定のクライアント用のテーマであれば、カスタム投稿タイプをどこでどのように定義しても、もちろんかまいません。しかし、公開テーマでは、カスタム投稿タイプをテーマ内で定義すべきではありません。
公式テーマディレクトリでは、テーマがカスタム投稿タイプを使用することが非推奨となっています。(http://themes.trac.wordpress.org/ticket/11398)
Hybrid テーマフレームワークの作者、Justin Tadlock 氏のWhy custom post types belong in pluginsブログ記事が参考になるでしょう。
カスタム投稿タイプを使う時は、プラグインとして切り分けて、プラグイン内で register_post_type を使うほうが、ポータビリティの面で勝ります。カスタム投稿タイプは便利ではありますが、配布テーマで定義されていると、テーマを変更したとき、(変更後のテーマが定義していなければ)そのカスタム投稿が表示されなくなってしまいます。WordPress の入門書で、そのようなテーマの作り方をしているケースもあるようなので、ご注意ください。