Ruby 2.2 では、次のように新しい String オブジェクトを割り当てますか、それともインターンされたものを使用しますか? これらのコマンドは、指定された順序で実行されると想定してください。
"foo".freeze
foo = "foo".freeze
foo2 = "foo"
foo2.freeze
foo3 = foo.freeze
foo4 = ["foo".freeze].first
foo5 = ["foo"].map(&:freeze).first
あなたの答えの証拠を提供できれば、それも素晴らしいでしょう:)。