Cool feedback. Thanks, Bevan.
I think the concern of some of the other poster's is having to do with performance. Generally speaking and with few exceptions, an mTVF (Multi-statement Table Valued Function) is going to be slower than an iTVF (Inline Table Valued Function). Your use of LEAD may help overcome that but, if you can use lead, take a look at a modernized version of DelimitedSplit8K that a good online friend, Eirikur Eiriksson , wrote. I've test it and it's twice as fast as DelimitedSplit8k and approaches CLR speeds very closely. Of course, it requires 2012+.
http://www.sqlservercentral.com/articles/SQL+Server+2012/106903/
--Jeff Moden
Change is inevitable... Change for the better is not.