Most of my classes are package private. It is just a matter of information hiding. Especially when using factory patterns I hand out only public interfaces whereas the implementations are kept package private.
I've used it for unit-testing -- gives the test class a little more access.
Exactly. To elaborate a bit for those who never used it in that way: you want to separate your unit tests from your app code. But you still want to give your tests access to non-public methods in order to test them independently. The solution is to put app code and tests in different folders, but in the same packages, and make everything you want to test package-scoped.
Ironically, it's quite commonly in use in Google's code base. GWT in particular.
Might be a vicious circle: no one knows about it -> no cool uses of it are found -> no one uses it -> loop.