Answer
It's driven by the active Solution Set configuration at code-generation time, not by a runtime check like the $IF ... $THEN pattern used in PL/SQL files — if the dependent component is disabled (or simply absent) in the active Solution Set, the entire section under that annotation in the .client/.projection model is dropped during code generation itself, so the check happens once, at generation time, rather than being evaluated dynamically like its PL/SQL counterpart.