Reading the appellate review, I think you've got a good summary of this decision. Particular attention needs to be given to the fair use issue; the decision clearly states that while the copyrightability analysis wrongly incorporates attention to Google's desire for compatibility, that concern may be very much relevant to the fair use analysis. Since this is a decision that Affirms in part, Reverses in part, and Remands - all this goes back to the trial court, which could follow this decision and still end up in roughly the same place - minimal damages to Oracle. Alternatively, if the fair use issues go against Google (and they could, given that the entire interface files were copied verbatim, the use is for comercial purposes, and that Oracle was attempting to license Java into the smartphone market at the time), it could eventualy be A Big Deal.
There's a lot of attention given to the RangeCheck function - IMHO there aren't very many ways to write this function, and even if you write it differently, the compiler ought to optimize it into essentially the same object code. It's a function that checks three things and throws three exceptions. You could change "if (a [lt] b)" to "if (b [gt] a)", [sorry, but [lt] and [gt] characters would make it look like HTML] but if you change the order of the checks, you'd throw the exceptions in a different order - that would change the function of the code. Code that attempted to parse the exceptions thrown by the RangeCheck function would see a difference if you reordered the checks or if you changed the strings in the exceptions. So, using the Abstraction-Filtration-Comparison test, there's really nothing that is expression versus "idea."