It's safe to yank it out when the drive does not do any write operations.
It's very likely to break shit if you yank it out while write operations are ongoing.
If you eject a drive with the operating system thing, then cached write operations are guaranteed to complete under normal circumstances, which means that it's always safe to yank it out when ejection is complete. That's why you do it.
More generally speaking, external HDDs cannot guarantee atomicity from
ACID in every scenario.
The operating system is completely irrelevant to this. Well, on Linux, all transactions can be cached if you look at the external drive as an FDD, but that's not how it's done anymore, really. So the operating system is not a variable.
Note that an OS shutdown means all transactions are guaranteed to complete. Same SHOULD be the case for sleep mode, but I can't really guarantee it myself right now. It HAS to be the case for hibernate (aka suspend to disk).