> transform and inverse_transform are not supposed to change the state of the object so I feel that it's really ugly to change the state of the object just to call these methods:

>I do agree that constructor parameters that concern transform can be useful for grid search or pipelines, though. 

I agree with both of them, I just don't see hat conclusion you want to draw. The pipelining argument is equally valid for ``inverse_transform``, isn't it?
I think pipelining is an integral part of sklearn so all estimator should work with pipelining. Ok, from a general point of view it is ugly to do that by passing everything as constructor arguments. But that is the way we decided to go for scikit-learn. If you have a better idea, we can discuss changing this approach.
As this is the way we *need* to do things (maybe not here because we are working on ``y``, not ``X``), I think we should stick to it. Everything else is just confusing.