Yes the splatting is the problem. But since you are using a generated function you can just generate code to avoid splatting.
Evaling a string should on 0.4 not affect the performance of the generated function but on 0.5 I think you can't even call eval in generated functions (for technical reasons).
