We can argue what readings are reasonable until the cows come home. But most lawyers had thought this area of copyright law settled. Creative expression is copyrighted. Functional expression is not. In cases like http://en.wikipedia.org/wiki/Sega_v._Accolade, use of copyrighted material where necessary for functional interoperability has been ruled fair use.
I am somewhat familiar with the history of these cases, and I would disagree that most lawyers thought it settled because this case is subtly but significantly different. The Sega etc. cases were about binary interoperability, which I'd agree is well-settled law. The thing that most of us programmers get confused about is, APIs are for humans to design systems that interoperate with other systems. They are not necessary for binary interoperability, at least for Java.
To understand what I mean consider this: You can design an API for file handling that looks nothing like the Java API and yet compiles down to exactly the same JVM bytecode. Case in point: Jython and JRuby. It is the byte code level interfaces that cannot be copyrighted because they are purely functional. The human readable Java API on the other hand are just one form of expression of that underlying functionality.
To understand what I mean consider this: You can design an API for file handling that looks nothing like the Java API and yet compiles down to exactly the same JVM bytecode. Case in point: Jython and JRuby. It is the byte code level interfaces that cannot be copyrighted because they are purely functional. The human readable Java API on the other hand are just one form of expression of that underlying functionality.