Cinder, there doesn't need to be consensus, but APIs should be well thought out and ideally breaking changes should only be made when absolutely necessary. When possible, they should be phased in to give developers a chance to release versions that support the new interfaces before customers see crashes. This did not happen in this case.
Core very quickly implemented a flow to handle land pass sales under the believe that they had all the money module tools they needed. I informed them that they didn't and should take some time to plan this. No planning went into this (other than the research I had published in IRC as to how to capture the land-pass sale flow) before coding was started. They first tried to use the flows that uploading of textures or group creation fees uses. I had to inform them that those don't supply any information for who to pay (the land owner) or any details of the transaction (such as the parcel). They then jumped to using the existing MoveMoney() function, but I informed them that this flow might hand out a land pass when the payment failed as it returned void. They added a new interface function which returns a bool to resolve this. I asked that they add a dictionary arg to this so that information about the transaction could be passed to the money module and so that it might be more flexible for future transaction modifications, but they seemed set on preventing the money module from having access to any info beyond a string description. I asked that they provide a callback function for the money module to call after it had asynchronously completed the transaction (so that the money module could control delivery of the pass), but this was also refused and they went with a flow where the core fully controls the flow.
This could have been done without breaking any money modules by creating a new event in core which the money module could subscribe to. For modules which didn't, this event would be fired and nothing would happen. My other suggestion was that if they add a new interface function, they do it now and announce that they would start using it some number of versions in the future, to give all money modules a chance to implement it. Instead, they added it and immediately began using it.
Further, these changes were made in the 0.9.1-dev branch and really should never have impacted the 0.9.0-release. So, even if you are making breaking changes, those should not end up in a release if they weren't in the release candidates for a version. Sure, core has the ability to do what they want and sometimes moving quickly is the right move. I don't believe they needed to move this quickly here and I believe a lot of bad decisions were made which unnecessarily adversely affected customers.