Are you saying that using equations to add a level of indirection
prevents optimization? I still don't see it - discarding x doesn't
change the semantics, so a good compiler /should/ do this. How is
this different from optimizing out application of a constant function?