Development has now removed the PHONENUM variable entirely from what we transmit to PayPal Pro for card-based Direct Payment checkouts, so now we will only transmit SHIPTOPHONENUM, which is the sole phone number variable they currently document for the DoDirectPayment API.
Curiously, the old PHONENUM wasn't throwing an error (as would happen for an entirely unsupported variable), and formally deprecated variables would be documented as such, and at least mentioned in Release Notes, rather than just quietly disappearing from the docs. It seems they adopted the SHIPTOPHONENUM variable name to make it clearer which type of phone it refers to, yet without removing support for PHONENUM, presumably to grandfather older integrations that were still using that. I have to wonder if these may actually be interchangeable names for the same, single variable, so the fact that we were passing both (even with identical values) may have been confusing their system somehow.
Regarding the required-phone validation issue, Development thought they'd sorted that already, but then they realized our form validation scripting differs among some of the checkout pages we manage, so they should now have it sorted for our PayPal Pro Direct Payment checkout page. Let us know if you see any remaining issues with that.