The one thing which remains to be discussed in the spec is how shared resources will be handled - ie. mailboxes in a 'shared' namespace, mailboxes belonging to other users, made viewable to other users in the 'other users' namespace and the same going for calendars and contacts.
Whilst different services like Fastmail, Google, Kolab al have different sharing allowances, like some across domain, and some across multi-domain, as well as others which allow a more fine-grained control to sharing like Fastmail (per-folder basis).
Essentially, with JMAP clients springing up soon, there will need to be some concept of how shared resources are handled, so that users have the choice to match whatever client to server as they please.
Whilst this could all get complicated quickly, there needs to be a common way of displaying shared objects client-side. Though different services allow for a variety for different things, there needs to be an api to manage this.
So JMAP clients will not be able to define sharing properties of mailbox/calendars? Will this then be restricted to service specific extensions/settings pages in web apps?
Though applications will be able to access all data, going with a per-service approach makes the assumptions that clients and servers will have a one-to-one approach
Clients like Airmail, Thunderbird, etc are generic and should be able to have a great experience with all.
Allowing things to fragmented at an early stage doesn't help in convincing big adopters like Apple to build something,