A 30% code size reduction in code that does little other than construct and return a value. I have certainly seen individual
functions where this is the case, but across an entire program, you will not get anywhere near 30% size reduction.
Having said that, this is certainly something that should be fixed in the compiler.
On a related note, in the final assembly, the compiler could also have optimized the 4 RETs into 1, then optimized away all of the conditionals, turning the sample code into the equivilent of "return objectInfo()"). Of course, in a real example, these optimizations would not be possible; but they do show that these reduced cases are not the best way of benchmarking performance.