The orange-blue actually works perfectly because it's recognisable and distinct. It grabs attention and because of color opposites, it's very clear to have one thing contrasting the other.
as far as black on orange, though it is still a contrastual difference,it isn't as distinguishable as a (darker) blue on it. White against orange isn't as big of a contrast either and would make words disappear, for example.
And let's be honest - black against orange is far from attractive in Mclaren's 2017 livery either. To be honest, it just looks weird. I don't know if an abscense of white would have been better though. Above all, i think it would have looked much, much better and much more in line with Mclaren's brand logo to have not had orange in this year's livery but the red from the Mclaren logo. I wouldn't even be surprised if that was the original motivation but somebody decided they needed orange, not the least to distinguish it more from both Ferrari and perhaps even the unknown factor of Haas at that moment, even though a simple question from Mclaren to Haas on that department would have been sufficient.
Instead, a full-bright orange livery pops out and is unmistakable. And as such, unmistakably mclaren. The addition of - a small but decent - amount of blue would only emphasize that, as it would only catch more attention than 'just' orange. Even more than the absence of blue. Hell, the Mclaren and Renault livery of 2017 looks enough like eachother to be even slightly confusing. A full orange Mclaren would also risk somewhat confusing it for a Ferrari. Not every monitor hands out colors as good as it should, nor does everybody percieve / distinguish colors as vividly as others. (think about that blue black gold dress discussion of some time ago).
An orange-blue McLaren would make very much sense in that it would be instantly recognisable as nothing but a Mclaren, and that means brand exposure.
Just think about how much more the Force India is visible thanks to the pink livery. Even if it's in the far background in a corner and the camera is focusing on a Mercedes or a Toro Rosso, the pink rocket just pops up, and immediately people notice the Force India's presence. Which is a huge benefit for the team itself (exposure) aswell as the driver's performance (in their previous greyish livery they were 'just in the background', now it's HEY, there's OCON/PEREZ!), AND offcourse the sponsors' benefit BWT in linking the pink livery with the sponsor brand, again, exposure.
As for toro rosso btw, those are also (or nearly as ) polar opposites and nobody complains about the blue against red which is actually concidered very attractive, so it's rather selective tbh.
Sponsorwise, the orange vs blue is also much more interesting, as for example 'SONY' in huge, white font on a bright blue background on the rear wing, on the sidepods, or the front wing, pops much more into the eye than were it black on a total orange car, or white on a black wing. especially if the rear part of the engine cover (and sidepods) and rear wing end plates are also black - it disappears somewhat, or it 'vanishes' in the dullness of (that part of) the livery.
another example is - i might stand wrong in the final product though - the shown livery for the Alfa Romeo Sauber cars for 2018. They could have went for a total red car, but instead, they went for a bright white vs a bright red with a huge alfa logo on the engine cover. The contrast of the sidepods or the white vs the red shifts the attention to the red part and you immediately see 'Alfa Romeo'. Were it have been completely red, the alfa romeo would 'vanish' somewhat due to the totality of the car being red (little to no contrast), and additionally would be brand-negative in being easily confused with Ferrari, which would be very negative for Ferrari if the Sauber Alfa Romeo is constantly in the back of the field.
Instead, you can't mistake the Sauber for a Ferrari and vise versa, and the sauber can't be mistaken for any other car/team.
Conclusion: opposite colors work perfectly, and as seen in the images above, can and is actually very attractive - the only sidenote that needs to be made is that people have differing taste - you might like blue, i might like red, the other yellow, the other green, so there will always (thankfully) be people favouring and disfavouring certain liveries.
but a blue-orange livery works in every universe fathomable.