I think that this question is based on some assumptions which constrain the nature of the question.
Mastodon runs on the OStatus Protocol in order to federate. The following software supports the OStatus protocol either as its core protocol or as an optional extension:
- Mastodon
- postActiv
- Friendica
- Hubzilla
- GNU/Social
- Pleroma
Each of these has features which are unique to it, or are not entirely supported by all of them. Pleroma is an entirely new implementation of the OStatus Protocol that popped up recently.
A part of being decentralized and open is also having open protocols. If I don’t like Mastodon at all, I should be able to break off and make new software and still be able to interface with Mastodon. Otherwise you end up with something like Diaspora*, a decentralized, yet effectively closed, system.
Unless we are going to make Mastodon into a closed semi-centralized system, which I oppose, then all design decisions must consider what will happen if it interacts with an instance that doesn’t support that feature.
Given that Mastodon is open-source, there may always be forks which would have differing levels of cross-compatibility. You have to consider that. I could easily fork Mastodon and make a Nega-Mastodon which appears to be vanilla but doesn’t respect post privacy.
Additionally, because Mastodon is a distributed system, you have to consider that, for instance, there are tons of computers still running Windows XP. There are Mastodon instances that may be running older versions, which do not include support for a new feature.
Backwards-compatibility i just an important design consideration. Regardless of if, for instance, you have a handful of friends who are on non-Mastodon instances.
Presently, there is work being done to implement support for another protocol, ActivityPub, which seeks to remedy some of the issues with OStatus that makes things like “post leakage” and “wild posts” such a concern. Pleroma and postActiv are also, last I checked, planning on implementing ActivityPub.
Because email is such a great analogy, we can return to email.
Microsoft Outlook is an email client which has a lot of features that are not supported by other email clients. I find it very useful to be able to assign people tasks or invite them to calendar events. But not everyone can interact with these features, including people running different versions of Outlook from me. This is not a reason for Outlook to break away from using the email protocol, it’s just something I have to consider when I email someone if they’re not using Outlook. If Outlook became a proprietary protocol, it would become much less useful.
In terms of prioritizing cross-compatibility, it’s presently clearly not a priority, and has rarely been. Trying to remain cross-compatible has the benefit of being a "good neighbor,’ which will make other people like you more. It also allows you to interact with more people and expands the fediverse to be a more useful world. It’s also important to consider how a cross-compatibility error can have undesired consequences. For instance, a GNU/Social instance has not idea that an instance runs Mastodon when it connects. If Mastodon throws tons of errors in their logs, that’s really obnoxious and makes life difficult for the admin of that instance. It’s just a nice thing to do to try and fix that if possible. You also have cases like #nsfw and conversation_id.
With the #nsfw issue, we had had two competing systems for hiding NSFW content, resulting in GNU/Social and Mastodon instances sending porn and gore back and forth unwittingly without any marking or hiding. This is undesirable for all parties, so of course we added support for #nsfw.
With conversation_id, there was an issue where, if a Mastodon user joins a conversation with GNU/Social users in it, that conversation thread would break, and it would become difficult to maintain a conversation as you couldn’t see what any posts were replying to. This made it very difficult to have a coherent conversation and resulted in a lot of conflicts arising from very confusing conversations. As one user had said to me, “Every reply to a Mastodon user is like a quest.” Mastodon users had no clue from their end this was happening, and can’t see necessarily that a conversation they’re joining involves GNU/Social users, so they would hop in and break their conversation, and even if they left one comment and left, it would make following that conversation a whole ordeal for everyone else. Fixing this issue (once v1.4 comes out) will ease tensions because people can actually talk to each other.
So, of course we should implement features we need and find useful regardless of if other implementations of our protocols support it. But we need to consider cross-compatibility and not intentionally break it. Even if we decide to give up on OStatus (despite it being the backbone of the software) this is still a problem we would have.
Anyway yeah we should stay compatible with GNU Social imo