simple dependency intends this behaviour:
component statuseffect
expressioncomponent acomponent/feature b
a (:depends-on (:b))presentpresent(operate b), (operate a)
a (:depends-on (:b))presentabsenterror
a (:depends-on (:b))absentpresent error
a (:depends-on (:b))absentabsent error


given the code in parse-component-form, :weakly-depends-on would appear to effect this behaviour:
component statuseffect
expressioncomponent acomponent/feature b
a (:weakly-depends-on (:b))presentpresent (operate b), (operate a)
a (:weakly-depends-on (:b))presentabsent (operate a)
a (:weakly-depends-on (:b))absentpresent error
a (:weakly-depends-on (:b))absentabsent error


there are cases, where it is useful to cause a third behaviour:
component statuseffect
expressioncomponent acomponent/feature b
a (:contingent-on (:b))presentpresent (operate b), (operate a)
a (:contingent-on (:b))presentabsent
a (:contingent-on (:b))absentpresent error
a (:contingent-on (:b))absentabsent error


perhaps there are others. this one is useful when building a system where the components are contingent on the runtime and/or o/s.