It is possible to run more than one instance of the "carousel" component, to control different tool turrets for changing the tools.
If you are content to run one tool slide as XZ and the other as UW then LinuxCNC can also move both tools.
What that scheme doesn't allow you to do is to start a long turning pass in W while at the same time threading in Z (for example). G-code lines all run in strict sequence and all axes arrive at the end point at the same time.
For special purposes I can imagine running some axes outside of the interpreter using
simple_tp
but that is not really an answer for general machining.
Using multiple instances of "carousel" would be simplified if the component could be configured to ignore tool numbers outside its range. This is a simple fix. I think that an extra pin "base number" would do all that is needed. Then the component would quietly ignore any input number < base or > base + pockets. (rather than rely on hal wiring to achieve the same thing)