так, ну давайте конструктивно.
откуда взялся идиотский бэкслеш и какие проблемы с ::, и какие я вижу варианты.
http://wiki.php.net/rfc/namespaceissues
пункт первый:
"Conflict between namespaced functions and static class methods"
варианты.
первый, который точно делать не будут, но который мне нравится - отказаться нахрен от неймспейсов для функций, пускай все живут в global scope. вообще использовать неймспейсы _только_ для классов. говнокодерам неймспейсы не нужны, у остальных и так весь код находится в классах.
второй - ладно, пусть мы хотим неймспейсы для всего, но зачем миксить классы и функции с одинаковыми именами? достаточно задокументировать такое поведение. если хочется явно различать - лучше изменить lookup order с существующего на 1)static method 2)namespace::function и ввести скобочные уточнения, например:
PHP:
// ns_func.php
namespace Foo;
function bar() { echo "function bar()\n";}
// run.php
include "ns_func.php";
class Foo {
static function bar() { echo "method Foo::bar()\n";}
}
// calls method Foo::bar()
Foo::bar();
// calls ns Foo::func bar()
(Foo::)bar();
UPD
второй пункт Resolving access to internal classes я пропустил т.к. там уже предложено хорошее решение