I'm a bit confused what he's trying to say here. He seems to be arguing that full branch coverage is needed for thorough testing, but then argues something to the effect of "it's too hard."
So, what are we supposed to do? Not test? Not test "thoroughly"? Write 1084x as much test code as production code[1]? He provides no alternative.
I think the point is something like "don't unit test the system as a whole". Black box testing is great and most definitely should be used, but should be kept very high level and unit tests should be kept very small and granular.
The author's idea of branch coverage seems mixed up. I've worked on avionics at the strictest safety level. We had to test every branch and every combination of conditions for the branch, but every combination of branches up and down the code path was not a thing.
So, what are we supposed to do? Not test? Not test "thoroughly"? Write 1084x as much test code as production code[1]? He provides no alternative.
---
[1] http://www.sqlite.org/testing.html