I checked the level of the SD slave select (D4) after every call to myFile.read(), and it was always HIGH. That means if the MISO line is malfunctioning, it would be a hardware problem with the SD card itself, not the SD library.
No, SD.h has a bug. I wrote the bug and fixed it in newer versions of SdFat.
You must send clocks to an SD with chips select high to cause the SD card to release MISO. SD cards release MISO quickly, after one or two clocks (I don't remember which) so even devices that send one or two don't care bits work OK, like some ADCs.
I think MMC cards need a whole byte of clocks.