Railsに限らず、WebのMVCなら書き間違えてしまいかねないのですが、

本来の形

本来下記のようにすべきところを

def hoge
  ActiveRecord::Base.transaction do
    ....
    ....   
    raise ActiveRecord::RecordNotDestroyed unless Foo.destroy_all
  end
  redirect_to .....
rescue ActiveRecord::RecordNotDestroyed
  redirect_to .....
end

誤り

遷移処理をトランザクションの中に入れてしまった場合に具体的な問題は起こりますでしょうか?

def hoge
  ActiveRecord::Base.transaction do
    ....
    ....   
    raise ActiveRecord::RecordNotDestroyed unless Foo.destroy_all
    redirect_to ..... # <- トランザクション中に書いてしまった!
  end
rescue ActiveRecord::RecordNotDestroyed
  redirect_to .....
end

説明

raiseで例外が起こった場合はどちらも rescue に処理が飛ぶので、例外が起こったとしても処理の流れに違いはないように思います。(とはいえ、DBに関するブロックに遷移処理が入っているので、ロジック的にもソースコードの美しさ的にも変だとは思いますが)