The problem is that the Integer.new function dispatcher requires the input string to be a well formed octal, decimal, or hexadecimal string to accept it as an input parameter. It should not require that when radix is given. I think the solution is to have a second dispatcher that allows any string - that will work since it is not trying to deduce radix from that value - and will subsequently fail if the string is not acceptable for the given radix.
Conversion to Integer would give an error when asking for conversion of a decimal string with leading zeros. For example, conversion of "08" with explicit radix 10 would flag this as an error as if the string was supposed to be a valid octal number. This is now fixed so that `Integer("08", 10)` works as expected.