Thanks for your reply and with your input I have managed to make it work as desired. Basically treating all vertices that border a mat id change as bezcorners in order to "insert" an empty corner node works, not only stopping segments protuding past the end of the spline sections but also fixes the adaptive segments protuding past the end of the splines. It's worth noting that not all segments are the same length but it still works with adaptive as I mentioned.
I do question whether this workaround is actually a bug rather than a feature as if you wanted segments not to be sliced at the end of spline sections then the "Slice" tick box against segments could be unticked. What are your thoughts?
I also like the idea of using the selector x spline mat id mode but we have developed quite a complex mat id numbering system, which requires mat id in the 1000s and seeing as you can't edit the mat ids in the selector itself, we need to use the conditional formating setup I had previously created but thanks for your advice again.