But is it something that I can count on? Is it guaranteed to happen, whether or not I'm in the constructor, or in a test runner or any other scenario?
Yep, that's part of the contract of WhenAny*, is that it fires immediately when called. ObservableForProperty
does not have that guarantee.