An intriguing question If it wasn’t you, I would have been tempted to give a shit answer like:
" Because we want to control our shadows (per light source and in scene) "
But then, let me attempt decode your question and share my own XP with shadowing in BJS:
I think what you mean could be somehow related to something I experienced when first studying this part in BJS, which I could resume asking: “Why is it like the shadow generation and management properties are not directly linked to the light source/properties ?”
I do not have the answer. Obviously, I’m not a code architect. Eventually, a PM or coordinator.
The one thing I can say is If this ‘constraint’ (or additional effort in code/design) is a result from keeping the best average/compromise to handle this part, keeping the best balance between expression, control and sustainability/evolution, I’d rather keep like this. Else, I admit I find it sometimes cumbersome to handle these 1 and more shadow generator(s) of different types ‘levitating’ in various parts of my script. (also because I’m a shit coder;)