Смысл в том, чтобы избежать конфликтов имен. Например, если я создал библиотеку классов с пространством имен «objects», как в
com.davidstratton.productclass.enerprise.productname.sdkname.objects
он может существовать бок о бок с другими классами.
Это может показаться излишним, но имейте в виду дни «ада длл», которые мучили развитие в пред .Net дни. Чтобы компании могли (и делали) классы продуктов с одинаковыми именами, чтобы установка одного приложения могла сломать другое приложение. Одной из целей разработки .Net было избежать этого.
Соглашение об именовании, о котором вы спрашиваете, фактически указано в рекомендациях по проектированию классов, как указано здесь: http://msdn.microsoft.com/en-us/library/ms229048.aspx.
Редактировать - Добавлено
Мое утверждение выше неверно, говоря, что это в "официальных инструкциях". Я не уверен, где я увидел рекомендацию по присвоению имен com.companyname.blah.foo.bar, но я не могу найти ни текущего, ни более старого определения. Я должен был представить, что читаю это где-то.
Так что я официально согласен со всеми, кто сказал, что это
излишество.