Looks like my coffee just kicked in.

What do you think of this as a solution, do you see any downsides?
includes/modules/pages/checkout_one/jquery.checkout_one.js
Code:
function changeBillingFields(event)
    {
        if (jQuery('#checkoutOneGuestInfo .opc-buttons').length) {
            if(jQuery('#checkoutOneGuestInfo .opc-buttons').is(":hidden")) {
                jQuery(this).addClass('opc-changed');
                jQuery('#checkoutOneBillto .opc-buttons').show();
                jQuery('#checkoutPayment > .opc-overlay').addClass('active');
                jQuery('#checkoutOneBillto').addClass('opc-view');
            }
        } else {
            jQuery(this).addClass('opc-changed');
            jQuery('#checkoutOneBillto .opc-buttons').show();
            jQuery('#checkoutPayment > .opc-overlay').addClass('active');
            jQuery('#checkoutOneBillto').addClass('opc-view');
        }
    }
It seems to work, but I'd prefer getting confirmation that it won't cause problems in certain situations that I can't think of at the moment.