As I understand it (and remember this is not legal advice):
If you use software licensed under the Apache License 2.0, you get a patent license for that software from its contributors.
However, if you have a patent of your own, which is allegedly infringed by the software, and you sue the software's contributors for infringing your patent, you forfeit the patent license that you received for their software.
And as for OpenBSD, here's what they have to say about the Apache License 2.0:
The original Apache license was similar to the Berkeley license, but source code published under version 2 of the Apache license is subject to additional restrictions and cannot be included into OpenBSD. In particular, if you use code under the Apache 2 license, some of your rights will terminate if you claim in court that the code violates a patent.
A license can only be considered fully permissive if it allows use by anyone for all the future without giving up any of their rights. If there are conditions that might terminate any rights in the future, or if you have to give up a right that you would otherwise have, even if exercising that right could reasonably be regarded as morally objectionable, the code is not free.
In short: since the Apache License 2.0 has conditions that might terminate your patent license in the future, it does not qualify as free under the OpenBSD definition of "free code."
In addition, the clause about the patent license is problematic because a patent license cannot be granted under Copyright law, but only under contract law, which drags the whole license into the domain of contract law. But while Copyright law is somewhat standardized by international agreements, contract law differs wildly among jurisdictions. So what the license means in different jurisdictions may vary and is hard to predict.
So, OpenBSD also disapproves of the patent license clause because of its potential to lead to more ambiguity and unpredictability.