I have always marked my .NET assemblies as visible to COM with [assembly: ComVisible(true)]
, thinking that I never know when someone might need to call them fro
With the advent of Generics and other advanced types, it is more common now for methods to expose types that can't be COM visible than it is for them to expose types that can.
The recommended method in CA1017 is intended to encourage you to expose only those types that you intend to be exposed to COM.