It is simply warning you since not all languages that can consume the types within your solution will be aware of the difference (and may be unable to use the types).
I think that you can avoid this warning by marking your assembly as being non-CLS compliant (in the AssemblyInfo.cs file) (read more here):
[assembly:CLSCompliant(false)]
Not sure I think it's a good idea though...
Update: I think that the reason that the warning is issued though nothing is publicly exposed is that namespaces do not have access modifiers. You could perhaps say that namespaces are always public, so they are exposed to potential clients, even though they may not contain any public types.