"I perceive that you haven’t ever tried programming against IMAP or making a MUA, or not seriously at least."
Unfortunately for you, your perception is wrong. Writing an IMAP client library is my go-to project when I'm learning a new network stack / language. I am very familiar with the way it works and it's various problems, and have been paid to write software that uses it.
I am not as familiar with JMAP, but I did look into it a year or so ago. I recall at the time that it didn't seem to solve that many problems, and introduced problems that I never previously had when working with IMAP. I triggered a discussion on the IETF mailing list regarding one of these problems (https://mailarchive.ietf.org/arch/msg/jmap/7dSQsqRBJ_YlZ7wF8...). Somebody said at the time that they would look into modifying the protocol to address that problem, but to me (and I could be wrong) it looks like this hasn't happened.
My basic perspective on JMAP is: It doesn't fix enough problems to justify the massive increase in pain it would cause developers of mail clients by having to support both IMAP and JMAP at the same time. I'm totally on-board with replacing IMAP with something better. But it needs to be a lot better, or we should just stick with IMAP. To me, JMAP just looks like it will cause more problems than it solves.