It seems that the class category 'System' is registered as a package and each System-XXX category is both a package and a class category. As a consequence, System is a package that contains sub-packages, and 'System-Object Storage' is listed as a package.
I don't have a package registered called 'System', however there are some other packaging related problems in the latest Pharo. The classes BlockClosuresTestCase, ClosureTests, CollectionCombinator, and DecompilerTests are in no package. I used the following script, that is part of code critics: | packages | packages := MCWorkingCopy allManagers collect: [ :each | each packageInfo ]. SystemNavigation default allClassesAndTraits do: [ :class | (packages count: [ :package | package includesSystemCategory: class category ]) ~= 1 ifTrue: [ Transcript show: class name; show: ' ('; show: class category; show: ')'; cr ] ifFalse: [ [ :mclass | mclass selectors do: [ :selector | (packages count: [ :package | package includesMethod: selector ofClass: mclass ]) ~= 1 ifTrue: [ Transcript show: mclass name; show: '>>'; show: selector; cr ] ] ] value: class; value: class class ] ] displayingProgress: 'Checking Packages'
I suggest that package name should never contain a  '-'. This require quite some discipline to not mess up the thing.
That does not solve the problem of overlapping packages. See <http://code.google.com/p/seaside/wiki/PackageNaming> for a large scale packaging scheme that works. Lukas -- Lukas Renggli http://www.lukas-renggli.ch