Currently, you can use @ApplicationState to identify a field that can be used to access an Application State Object:
private MyState _myState;
However, there's no way to determine if the state object already exists; checking it (_myState != null) will force the object (and, perhaps, the session) into existence. A kind of "heisenbug".
What could be done is to look for a related field of type boolean, with "Exists" appended (i.e., "_myStateExists"). This boolean flag could be enhanced to check to see if the related ASO exists or not, without creating it.