my theory of what happened with PolicyNodeImpl
No need to wait for discovery, we know about PolicyNodeImpl and friends because the repository has already been looked at. It tells a rather obvious story: engineer does bulk checkin (2500+ files), 8 weeks later engineer reverses the checkin, some time later a corrected checkin happens.
That suggests to me simple error, an engineer committing more files that (s)he was supposed to, an error quickly fixed by Google. Remember, this all happened more than a year before Oracle started alerting Google. My own daily battle with SVN tells me how easily these tools will stab you in the back if you aren't constantly vigilant.
Changing the licence is a serious problem, even if done accidentally (running automated search&replace on copyright&licence headers is fairly common), but if Google can establish this was a corrected error de minimus neuters the penalties.
The other half of the issue is the nature of copyright: copyright controls *copying*, it does not directly control *use*, that's what licences are for. And that's how its possible to legitimately have copyrighted source in a working copy that cannot be distributed, because it's possible to have a licence to use without a licence to copy. The source for these particular files was available under a variety of permissive licences (including direct from Sun), severely reducing the scope of Oracles complaint to just dumping them into a public repository with a changed licence for a couple of weeks.
Oracle may be able to win on the fact that the files were made available for distribution, they can't win on Google *using* these files, cant establish Android needs or uses them and cant establish any meaningful damage was caused. So good Google bashing PR that leads nowhere.