Difference in dry-run between client and the API

I am wondering why there is a difference between the usage of dry-run in the client and the API.
Using the CLI, I have two dry-run creation modes - “client” and “server”:

Must be “none”, “server”, or “client”. If client strategy, only print the object that would be sent, without sending it. If server strategy, submit server-side request without persisting the resource.

On the other hand, when sending a dry-run request to the API it only supports “All”.

I would expect that both client and API will support the same dry-run creation modes - “client”, “server” and “All”.