So I've largely kept out of the discussion for now, mostly because I'm not overly familiar with the code. However I fully agree with Dan that a macro pretending to be a member function is neither obvious nor C++ style. As such I'm in favor of doing the conversion as it better meets the expectations of average developers (at least mine).
I also agree with David that this patch doesn't prescribe any future direction, which seems to be Han-Wen's fear. Any possible follow-up is subject to the same review process. If there are no technical objections, I think we should move forward and let something as big sit around for too long. https://codereview.appspot.com/573670043/