Hi,
Transforms (translate, rotate, etc...) and lpe do not get on well...
If you are not familiar to it, consider lpe-bend for instance:
Imagine you rotate the input, but not the path parameter (along which the input is bent) the new result is completely different.
So transforms need a particular treatment in presence of lpes.

Our solution to this problem up to now is to transform the parameters along with the object (or more precisely, to let each lpe decide what todo on transform).

This (good!) solution is user friendly, as your lpe parameters nicely move along with your object.
However, it implies some limitations (please invalidate if I'm wrong!):
I think it prevents from sharing lpes accross different objects, as if one is moved but not the other, which one should be followed by the lpe-parameters?
Note that atm, lpe are automatically forked/made unique when you move one object, and I guess that's the reason (?right?).
A related (but different) question is about "cloned" path parameters (i.e. references). I might be wrong, but I think path-reference parameters are not transformed atm.
(Marginally, one can even think of lpe that depend on the object location, but not relatively to a path or point parameter --- "underlying objects color" for instance?!?--- in which case, transfering the transform to parameters is useless; hmmm! I agree, this is pure abstraction ;-)

Although this is not a critical issue ("sharing lpe" jsut does not make sens for a lot of them!!), I think it's a good thing to have, so let's discuss possible strategies!

One easy workaround is to add a "lpe-transform" at the end of the lpe-stack whenever the object is transformed (of course, if the last lpe is already a (non shared) transform-lpe, we should just update it instead of adding a new one).
This is easy to implement and solves the issue. I think it is a bit cleaner as pes don't have to care about transforms anymore, etc...
The (serious) drawback however, common to all solution you can think of, is that if the lpe-parameters do not follow the object anymore, you'll have to look for them all the time and everywhere: if you applied your lpe somewhere, and moved your object a lot, at edition time you'll wonder why the lpe parameter shows up at the other corner of the page, which was the original place, but you completely forgot about. :-(

As a conclusion, if we want to keep track of the objects transforms *and* allow lpe to be shared, lpe must be able to strore object specific information at objects level (not in the lpe itself in the defs).
Maybe we could add one more attribute to the object, where lpes could register all the data they need (this would be usefull for other purposes anyway).
This would make it possible to remember the original position of the object when the lpe was applied: lpe paramters could then be suitably transformed at apply/display/edition time, but stored untransformed.

What do you think?
jfb.