Use cases :
  • make debugging easier for scripters structuring correctly their code with flags to enable / disable testing portions of code in spite of doing it manually with comments or copy / paste
  • configure scripts to be dynamically optimized for a build configuration, though relying on one main script that scripters can upgrade with time and as they get better skilled
etc.
It is basically a free and open source feature from the C/C++ boost library https://www.boost.org/doc/libs/1_59_0/libs/preprocessor/doc/index.html (already existing into the Firestorm viewer).
Anyway it is a feature needed by any serious scripter who wants to maintain code efficiently in the long term BTW making more efficient code also means using less cpu on LL servers.