Actually, thinking about it more, it seems to me that the best definition of vapp.isDeployed() would be whether deploy would change vapp's state: {true=>calling vapp.deploy() would not change the state, false=>calling vapp.deploy() would change the state}.
Instead, it seems to be based on the opposite way of looking at it (whether undeploy would change the state): {true=>calling vapp.undeploy() would change the state, false=>calling vapp.undeploy() would not change the state}.
I think it would be easier to understand if isDeployed() conformed to the top definition, and another call that doesn't exist (e.g. isUndeployed()) would conform to the second definition, since it is semantically simplest to define isDeployed() using deploy() and isUndeployed() using undeploy().