The transaction integration code in WFLY is pretty complicated. With the introduction of WildFly transaction client come one more layer of abstraction and especially it should be rethought what is the reason for using SPI there.
More than half a classes in SPI are deprecated. It would be good to understand if they are necessary or if some refactoring would be beneficial.
As an ilustration attaching a graphic of transaction dependencies in WildFly 11.