To implement such an "invisible shim" you would still need to write the exact same API that oracle is claiming is copyrighted to let other programs build against it.
It's not the internals of the functions that this case is about, it's literally about "class ArrayList { void clear() { [this part excluded from case] } ... }"
there is a big difference between an API exposed to all other programmers in the world - versus one that is there for say compatibility.
Their entire API works the same way as Java system and you program it as Java - it would be very different if say Android was programmed in Go and they had a way to translate Java programs into Go.
I assume your first post was in response to my "you can't write the API differently" paragraph. If not we are talking past eachother, sorry. If so, your followup is that focusing on Google's actions is missing the point. If there is only one (or a small number) of ways to write it then it isn't copyrighted, so Google can do literally whatever it wants. If there are many ways to write it, the argument fails, and Google taking a more minimal approach to copying it wouldn't change that (it might change the fair use analysis, but that's a separate discussion).
It's more of a nitpick, but your reply also exaggerates the scope of the case. No one is arguing in this case that Google was not free to implement Android or an API in Java, they are arguing about re-implementing Java's standard library APIs. As far as this case goes I don't think there is any salient distinction between implementing android in Go, and implementing android in Java with a different standard library api.