I haven't used any of these yet, I've been waiting for one to obviously "win " and gain some support, but have definitely felt the pain.
Use case: Sending a Kafka message to add or remove a value from an array field without having to know the rest of the array
Add in defending against pathologically malformed patches - several vulnerabilities were discovered in the golang patch libraries Kube used - and one starts to develop a twitch whenever it is mentioned…
You potentially need much more for some scenarios where you could be applying a patch to a previously modified document. It has some limited support for some common operations for these, but quite far from everything that could be useful. But it is also true that they needed to put the limit somewhere, and where they stopped is reasonable for a fair few scenarios, but certainly not every possible one.