Because sharing the same client is still useful, even if they're different platforms. For example, being able to use the same application to control systems that run on Linux as well as Windows without needing to duplicate a lot of logic in a lot of places. Additionally, I can see cross-platform programs as potentially being possible through the right combination of well laid out containers, and usage of file associations/binfmt_misc in proper doses. So settling on the docker api does make sense for ms, because a balkanized server ecosystem just leads to frustration and people less interested in your platform.