erbコマンドは行頭の%を認識するが、ERB.newのデフォルトは認識しない件

Ruby標準添付のeRuby実装のerb。これはerbコマンドにもなっていてシェルから実行できる。
たとえば、こんなeRubyスクリプトをerbで実行すると、「1 + 1 = 2」と出てくる。

% a = 1
<%=a %> + <%=a %> = <%=a+a %>

一方、ERB.new(eruby_script).resultで実行したときは、行頭の%を認識しないので注意が必要だ。ERB.new(eruby_script, 0, '%')と第3引数に「%」を入れないと行頭の%を認識してくれない。
ちなみにClass.newしてるのは、新たなローカル変数の名前空間を作成するため。

require 'erb'
src = File.read "percent.test.rtxt"
Class.new do 
  ERB.new(src, 0, '%').result binding
  # => "1 + 1 = 2\n"
end

Class.new do 
  ERB.new(src).result binding rescue $!
  # => #<NameError: undefined local variable or method `a' for #<Class:0xb7dd4fc0>>
end

`erb percent.test.rtxt`         # => "1 + 1 = 2\n"

行頭の%は%をコメントにしている言語(LaTeXなど)と相性が悪いからデフォルトでオフになっているのだろう。しかし、erbコマンドと動作が異なるのは一貫性がなくてどうかと思う……あやうくはまるところだった。