I think a Confuser is a great tool. By my opinion all internal classes, methods etc. should be included in the Name Confusion. When I tried to obfuscate a dll internal member names remained unchanged.
I have changed the code myself in the NameAnalyzer.cs line 197 to:
(mtd.IsFamily || /* mtd.IsAssembly || */ mtd.IsFamilyAndAssembly || mtd.IsFamilyOrAssembly || mtd.IsPublic)))
commented out the mtd.IsAssembly part...
It works well for me now, but I'm not sure it not introduced some problem elsewhere.
Hope this is a common request and could be included in the official release.