RailsのQuery Cacheを見ると、発行したSQLはハッシュで管理されており、
発行済の場合は、キャッシュを使うようになっていました。
この考えに従い、以下のようにすると、
見事1回のクエリだけで終わりました。
<% if @user.hoge.present? %>
<% @user.hoge.order(:created_at.desc).each do |hoge| %>
XXXXX
<% end %>
<% end %>
・・・クエリ2回
⬇
<% if @user.hoge.order(:created_at.desc).present? %>
<% @user.hoge.order(:created_at.desc).each do |hoge| %>
XXXXX
<% end %>
<% end %>
・・・クエリ1回
本当は変数用意して使えって感じですがね。。
以上、豆知識でした。