If you've ever wrestled long with getting a program to compile, you realize it's non-trivial to wrap your brain around complex types. The API is a language and the compiler is a runtime producing output. I can design my API in something like Java and return null from all the methods while I do it. The compiler will still produce expected results when I try to string bits of it together.
For most languages, this work is hard, because everything is a runtime error from the compiler. There are elegant and inelegant ways to solve certain problems. The API determines that. It is itself a creative endeavor.
Google was given the opportunity to license the API. They still can under GPL, but that means complying with GPL, which they evidently did not want to do. Ruling in favor of fair use here creates a vague double standard. Business models like that of MongoDB, who releases their code under GPL for open source projects and charges a license fee for private projects, would become questionable. "Well, you give it away already, so it's fair use to use it any way we like without paying you!"