The problem with auto detection is that XNodes don't generate their code during type propagation, only during compilation, so we would need a new tag/VI/something that declares up front "I am an XNode that will script only inlinable functions."
Ok. Mouse has cookie. I'm going back to improving malleable VIs for LV 2018.
I hardcoded that one into the compiler after multiple customers asked for it... pointing out that the common use case was to encapsulate an error in a VI so it can be returned in several parts of the code. I wanted to add a way to tag any XNode but there was aversion to risk at the late date I slipped that in. After that one was fixed, there wasn't any internal pressure to do a more general fix. And XNodes aren't public features, so external pressure doesn't work in feature priority meetings. NI has largely moved away from XNodes in our own work -- much to my personal frustration.
The XSFP VI is the "Save For Previous" VI if you save back to an old version before the XNode was shipping.