JavaTheHutt Sort of all three, but ulimately it's really a Graphene issue.
Google changed how they were handling RCS and is getting carriers to run the backend, rather than Google doing it themselves. But some carriers are still having Google run it anyway. So carriers like T-Mobile that are handling more of the backend are causing more issues for GrapheneOS, whereas Verizon I guess is still letting Google do it so RCS works more simply on GrapheneOS with Verizon.
So an earlier fix from Graphene got things working on carriers like Verizon (I forget what the nature of the fix was--you can scroll back several hundred posts in this thread and find the explanation). But the problem seems to be special privileged permissions that Messages requires for RCS to work on carriers like T-Mobile. @GrapheneOS said in this thread allowing these permissions is not the Graphene way and they are looking for a different solution.
So Google started the problem by changing how this works, some carriers adapted to Google's new ways and made the problem worse. But at the end of the day it should all work fine on stock OS, so ultimately GrapheneOS is not currently compatible with how Google is handling RCS and either will or won't come up with a workaround so they don't have to allow the special permissions that Messages wants.