Webアプリケーションに入力された文字エンコーディングはちゃんとチェックしてから次の処理に入るべきです。
ということは感覚的に分かるのですが、じゃあ実際どうしてなのかというと、私自身うまく説明できないです…

PHP以外では: 既にあたり前になりつつある文字エンコーディングバリデーション - 徳丸浩の日記(2009-09-14)
には以下のように書いてあります。

  1. 入力データがUTF-8(あるいは他の文字エンコーディング)であるというアプリケーション要件に対するチェック
  2. 内部データがUTF-8(あるいはUTF-16など)として妥当でないと、処理系が誤動作を起こすため
2.の理由はとても納得がいきます。
というのは、ErogameScapeでもUTF-8にない文字が入力されることがあって、その文字のおかげでアプリケーションが例外を出して止まるということがあるからです。(エロゲーのキャラクターの名前にUTF-8にいない文字が使われることがあって、そのキャラクター名で感想を書いて頂くと、アプリケーションが止まる…ということがよくありました。)

1.は…
1.に関連して、id:kazuhooku氏がはてなブックマークにて「UTF-8 を入れるべきフィールドに壊れた UTF-8 が渡されてきたら、そもそも受け付けるべきじゃない。8桁の郵便番号が入力されたら弾くのと同じ話」とコメントされていて、この意見に私も同意です。
と書いてあります。確かに…そうかも…

ErogameScapeはPHPもPostgreSQLもUTF-8を使っていますので、UTF-8以外の何かが入力されると、どんな動作をするか分からないので、入力フィルタはすべきです。

※株式会社ECナビはさんのセキュリティポリシーにおいても、入力された文字のエンコーディングはちゃんとチェックすることとなっているみたいです。5.6. PHP利用時の手順 — Infomation Security Policy alpha documentation

さて、実際にFuelPHPでチェックするには
FuelPHP でのセキュリティ対策(2) - A Day in Serenity @ kenjis
の入力フィルタの項目に記載されている方法でばっちりです。