You can undestand that oracle call interface would get intialize to the environment which is setted to your ORACLE_SID, perhaps internally it would get verified with existence of instance availability.
As the semaphores /shared memory segments doesn't get initialize with oracle_sid, so it would certainly reflect idle instance.