"Why does Oracle allows undocumented features to be used in the first place when it is not supported? "
We didnt *say* "Hey everyone! Go out and use WM_CONCAT" :-)
What typically happens is that *we* are using a function internally for something, someone stumbles upon it, blogs about it...and voila, everyone is using it *even though they know its undocumented*.
Here's how to go past 4000 with LISTAGG. Its in german, but the code is easy to follow
http://sql-plsql-de.blogspot.com.au/2014/01/sql-listagg-mit-clob-ausgabe-kein.html