Perusing ISO/IEC 7816-3:2006, section 12.2.5 specifies what happens when the reader sends a command APDU with Lc>0, Le>0 for the T=0 transmission protocol (byte stream). The initial command TPDU has no Le field, and if the card responds successfully, the application should send 0xC0 GET RESPONSE commands until Le bytes are received.
Questions: If the smart card expects to return data, is it actually valid for the card to return 0x9000 in response to the initial T=0 command (before any GET RESPONSE commands), as 7816-3 specifies? Is it valid for an application to issue a GET RESPONSE command after a 0x9000 response? In contrast, from reading the usage of doTransmit in javax.smartcardio and sc_transmit in OpenSC, it appears that these applications only try to GET RESPONSE after a sw=0x61xx response, never after a sw=0x9000 response.