結論から言うとパフォーマンス面の問題です。
ソースを見つけられなかったのですが、以前Oracleを触っていた時に調べた際には、
select句を実行する際、内部ではかなり大雑把に言うと以下のような流れになります。
select句を実行
→ 処理
→ 内部の一時テーブルに格納
→ fetchされる度に要求に従い返却
まず最初にネックになるのは、DBMSがシステム的に保有する一時テーブルに格納する
段階のパフォーマンスですね。次にfetchの要求があるたびに、DBからプログラム側へ
渡すデータ量(処理量)の違いでしょうか。
単純に利用しない項目も同時に処理することで全体的に処理しなければならない量が
増えることで、
・処理スピードの低下
・メモリやディスク(スワップ時など)の消費、
・トラフィック量の増加
といった結果になります。
PHP+Smartyで作ってると将来のメンテ工数を考えて、テンプレート側で自由に項目の
利用ができるように全部渡してしまうこともあるんですけどね。ホントは良くないと
知りつつ。