Currently textures can be positioned on faces. If they aren’t positioned they get drawn according to the axes in their modeling context. I suggest adding an additional optional matrix (set of axes) to groups and component instances to control the texture positioning on faces without their own texture positioning.
The user interface could be reached much similar to face texture positioning but then allow the user to set axes similar to changing a component’s axes.
In Dynamic Components there could be an option (checkbox) to set the texture positioning matrix to the inverse of the transformation matrix (meaning setting the axes to those of the parent drawing context). This would stop the textures from stretch and make Dynamic Components a really useful feature.
This feature would also be very useful for cut-opening components. These components must have their z (blue) axis perpendicular to the face they cut open. That often makes texture positioning in them a bit strange. Of course you can manually position the texture on each face but then you can’t easily repaint the component instance from outside and you need separate component definitions for each material which makes the file bigger.
This would also allow for having multiple components sharing both the same definition and texture without looking exactly identical. In these stairs you could use component properly and still not have the exact same pattern in the wood on all steps. In Dynamic Components there could even be an option to randomly move the texture origin around but keep the axes the same among instances of the same component to have the same texture rotation but different texture location.