As someone who was worked on an email client before:
IMAP and the raw message/rfc822 format is already a quite complex format to handle. Most open-source software starts by building their logic around these formats.
Exchange is a completely different model, everything from how you communicate with the server, how you store the bits on disk or in memory, or even the logical structure of messages. On top of this, it adds several features that don't really have a parallel in the standard RFCs. For most people working on email clients, it is far easier to tell users "enable IMAP on your Exchange server" than to actually implement the full top-to-bottom stack you need to get things working. Even then, given the likelihood of bugs and missing features, it's hard to justify making the switch from Exchange to $ALTERNATIVE, and if you didn't need those missing features, well go back to enabling IMAP and use that instead.
The APIs that MS uses for Exchange are largely public at this point. Even the mapping between MAPI messages and message/rfc822 that Outlook does is released in one of the documents.