There have been a couple of instances where I would like to extend a built in component, and have had to either completely copy the whole lot, or change method access in the source and recompile.
There currently doesn't appear to be any convention - some stuff is package local, some is private.
I'm sure I'm not the only one who would like to see visibility as protected by default.
Cheers - Ben