基本方針は@elcondorさんと同じかなあ。
ただ、フォームオブジェクトを使う場合、私はサービスと併用したりしています。
フォームオブジェクトにはあくまでユーザ入力の取り扱いのみ(具体的にはヴァリデーションとかその辺)をお願いし、その後のビジネスロジックはサービスで実装する、という形を取っていたり。
いつもそうするというわけではありませんし、フォームオブジェクトで通常のモデルでやるように振る舞いまで実装してしまっても構わないかなとは思います。
同様の処理をフォームオブジェクトを経由せずに行う処理(例えばバッチ処理やAPI経由の処理)にしたい場合、フォームオブジェクトを共有するのは違和感があるので、ビジネスロジック(サービス)とビューに依存する処理(フォームオブジェクト)に分けてる感じです。
この辺みんなどうしてるのかな?