The most probable reason is the way TrueCrypt and now VeraCrypt encrypts a volume. In order to encrypt a system volume you would either need to install it as code that boots with the system or as a part of the OS.
In the former instance it needs to run below the OS and handle all input/output operations. You would probably need to replace the interrupt routines and only have them handle operations on the encrypted disk. This is very complicated, has a lot of function duplication, and also needs to fit into the boot sector and any reserved sectors at its disposal.
Installing it as a part of the OS is the simpler and more reliable option as it doesn't have any function duplication and uses all the default routines. The downside to this is that the OS needs to be running for it to work so you can't install it before installing the OS.
Truecrypt and Veracrypt as I understand it uses a little of both. It first has just enough compacted boot code to decrypt the system partition using all of the default routines. Then it loads the basic OS functions and its own ones after which it switches over to running on top of the OS and handling requests for the encrypted volume. This means that installing a new OS over it breaks this functionality and makes the volume inaccessible. Even if it used the former mechanism there's still a chance that installing a new OS could overwrite the boot code so in either instance it's advisable to only encrypt a system volume after installing the OS on an unencrypted volume.