I've been too busy recently for various reasons to give it much time.
The macro is complex because (as I recall) it was setup to be an lvalue.
ActiveState supplied the patch many years ago when they added PERL_OBJECT.
The tricky question is: do some drivers still need it to be an lvalue?
I think
CPAN Bug 32309 was created recently, but I'm told that the underlying
problems was first reported in 2003 (though I only see DBI bugs dating back
4 years or so, so I can believe that the original bug report has now been
lost). The new bug entry includes a plausible solution (albeit not as a
patch