To je obecný problém - nejednoznačnost/nesrozumitelnost pojmenování čehokoli.
Ad článek - připadá mi, že bod 4 je tam částečně v rozporu s bodem 1 a hlavně jeho důsledek je ve větších projektech značný a zbytečný "voser".
"místo Nette\Http\HttpRequest raději Nette\Http\Request" - v praxi - chci vytvořit HTTP request. Pokud by se třída jmenovala "HttpRequest" (nebo "Http_Request"), vyskočí mi při psaní "new HttpR" buď okamžitě nebo budou vedle jasně odlišitelné položky (HttpResponse například) - potvrdím, IDE udělá import a mám hotovo. Pokud začnu psát "new Req", vyskočí mi všechny requesty ze všech NS (a všech composer balíků) a hledám, který je asi ten správný. Následně IDE udělá autoimport. Abych dostal kód do tvaru dle autora článku, musím se vrátit na začátek souboru, dohledat, kde se provádí import, ručně ho upravit (zkrátit), vrátit se zpátky na původní místo a ručně připsat poslední fragment namespace. A takto na to musím myslet já i každý člen týmu při každém pokusu o import. Pro tým je třeba samozřejmě nějak srozumitelně definovat pravidla, kdy dělat import a kdy řešit import z částečného namespace - každý člověk bude mít jiný cit pro to, co považuje za již srozumitelné a co ne.
Plus - u composer balíků třetích stran (a jejich composer dependencies a jejich composer dependecies ....) si jmenné konvence stejně vybírat nelze a generické "Request" třídy se začnou množit jak houby po dešti. :-)