The issue that @meksicus identified is due to the way that OPC (currently) manages the order's progress-to-submittal, since the full checkout_one page isn't re-rendered on a "simple" change to the shipping method.
Because of that, the changes that s/he made to disable the cash payment-method when the shipping-method chosen was flat aren't being told of any change in shipping until the order is initially submitted. Once the order's submitted, the checks on the checkout_one_confirmation page kick in and the customer is redirected back to the main order-entry page.
I'll need to think on this some and have opened an issue on the OPC's GitHub repository to track any changes: https://github.com/lat9/one_page_checkout/issues/127
Bookmarks