The idea is to define a standard model for describing distributed applications, so as you go from one platform to another, you get a consistent way of doing things. The actual features that are exposed through the model can be different on each platform that implements it (e.g., platform A has a basic autoscaler, platform B has an advanced autoscaler, etc), but the way you describe and operate the application is consistent.
disclaimer: I'm one of the spec authors
My original thinking was that Kubernetes has similar goals of providing platform-agnostic configuration for deploying applications, services, ingresses, and configuration. I now understand OAM as something a step above that can run on Kubernetes (via Rudr) but also on other platforms, perhaps like Swarm and Mesos?
I can imagine platforms choosing to adopt the Kubernetes API for container infrastructure, but it is still the Kubernetes API and it seems like keeping up with changes would be difficult. And there isn't really much in the way of first-class application modeling there, so that's how we ended up with a separate spec specifically for that, with the explicit goal of not being tied to any one implementation.
Something like Swarm or Mesos could implement it, but we're also considering things like cloud PaaS, internal on-prem platforms, and even down to small device runtimes.