It can be done via layer but a new one. To understand this you have to know how do layers work in Synfig.
There are two kind of layers: Composite layers and Non Composite layers
Composite layers do this:
They receive a rendering information (x size, y size, quality, etc) and a surface to render on.
First, the layer ask to its context (the layer’s below it) to render themselves to the given surface. The layer waits for the result of that request. Once the context has rendered on the surface, the layer (who actually knows its own parameters) renders the shape (or whatever it represents) on the result surface using its current blending method taking account the rendering information passed (rendering parameters)
Once rendered, it returns the result surface to the caller, usually other layer.
This go on, until the first layer call and the process end.
Non Composite layers do this:
They receive a rendering information (x size, y size, quality, etc) and a surface to render on.
First, the layer ask to its context (the layer’s below it) to render themselves to the given surface. Maybe the non composite layer needs that the context renders a slightly rendering information so it could modify the rendering information passed to context to render on the surface. The layer waits for the result of that request. Once the context has rendered on the surface, the layer performs a raster operation based on the pixels it receives and so it produces a completely new (modified) surface. That surface maybe blended to the render result from the context or not but the final (distorted) surface is returned to the caller.
Some non composite layers just do this, pass to the context a new rendering parameters and ask it to render on the surface. This happens with the Scale, Translate, Rotate and Stretch layers.
To perform such operations like “scale origins” or “rotate origins only” some extra operations have to be send to the rendering result. If you can produce the desired result with a combination of two or more layers, it is possible to create a layers that perform the same in only one operation.
The problem is that you pass information to a “context” and that information is common for all kind of layers. Some kind of new rendering information has to be created and the layers should know how to handle it. It is a possible work but it would be heavy because it would need to touch a lot of layers.
For example, “rotate only origin” could be performed by a rotation of the origin and one anti-rotation of the shape by the same amount around the origin. The problem is that the “Rotate only origin” layer" doesn’t know where the origin of the context layers are, so due to that, all kind of layers that would make use of the new “rotate only origin” layer must learn to handle that parameter.
-G