The problem is, frequently, the patents aren't on something you can engineer around; they're on a very broad idea and not on any specific implementation, e.g. pull to refresh. If you want to implement an interface that pulls down to refresh then you're technically infringing on Twitter's patent on it (though they have chosen not to enforce it). My understanding is there's no good way to engineer around it if you want the interface to pull and refresh.
Granted, you can get around that one with a button that refreshes, but what if the patents is, say, on "operating system provided tabs"? Or on "plotting search results on a map"? Or on "communicating multi-part messages"? Now you have a problem, and you're going to have to pay licensing fees since you need those things just to create your mobile OS.
The other problem has less to do with the patents themselves and more to do with the legal system surrounding them: it's incredibly expensive and quite risky to litigate software patent disputes. You're dealing with a court system that doesn't necessarily fully understand technical matters, leaving the outcome of litigating ambiguous even in the best of cases (and keep in mind that a loss could potentially end your entire product, since the courts could order that you must pay an extremely onerous licensing fee or cease infringing, either of which probably means closing up shop), and the cost of litigation is enormous. It's usually wiser just to settle for an acceptable licensing agreement than it is to try to engineer around the problem and fight the ensuing lawsuit by asserting that your solution is not subject to the patent.
Granted, you can get around that one with a button that refreshes, but what if the patents is, say, on "operating system provided tabs"? Or on "plotting search results on a map"? Or on "communicating multi-part messages"? Now you have a problem, and you're going to have to pay licensing fees since you need those things just to create your mobile OS.
The other problem has less to do with the patents themselves and more to do with the legal system surrounding them: it's incredibly expensive and quite risky to litigate software patent disputes. You're dealing with a court system that doesn't necessarily fully understand technical matters, leaving the outcome of litigating ambiguous even in the best of cases (and keep in mind that a loss could potentially end your entire product, since the courts could order that you must pay an extremely onerous licensing fee or cease infringing, either of which probably means closing up shop), and the cost of litigation is enormous. It's usually wiser just to settle for an acceptable licensing agreement than it is to try to engineer around the problem and fight the ensuing lawsuit by asserting that your solution is not subject to the patent.