The behavior did change, and it was an intentional change to make things consistent across all the different SCM implementations. The new behavior is, basically:
* When no revisions are specified, show the diff between HEAD and the TRACKING_BRANCH
* When one revision is specified, show the diff between that revision and its parent
* When two revisions are specified, show the diff between those two revisions.
Unfortunately, that does make your case more complicated. Aside from what you did with your _MERGE_BASE_CMD, there are a couple solutions I can think of:
1. Set TRACKING_BRANCH to "master" instead of "origin/master" and then avoid fast-forwarding the local head until your branch is done with review (you can still fetch from origin but leave master pointing to the base of your branch). This would work but really isn't great.
2. Much better, use "rbt post origin/master...HEAD" to post your branch (note the 3 dots between revs).
3. Best, create an alias for #2 (using ALIASES in .reviewboardrc) so that you can to something like "rbt p" and have it post what you want.
Hope this helps,
-David