今まで特に気にしていませんでしたが(寧ろ /etc/init.d/xxx の方が補完が聞いて楽なので多用していましたが)、/sbin/service を覗いてみたところ次のような違いがありました。
/etc/init.d/xxx start
コマンドを実行したときの環境変数がそのまま引き継がれる。
service xxx start
環境変数は PATH と TERM のみが引き継がれる(CentOS6 の場合、CentOS5 だと LANG も引き継がれる)。
コマンドを実行するユーザが変な環境変数を持っていると意図しないことになるかもしれないので(http_proxy とか)、service を使うように統一した方が良いようです。