In order to avoid namespace bloating, I use packages. For example, let Foo be a function in a package called FooPackage
Foo
FooPackage
function Foo()
Maybe you could use a private directory. The functions in the private directory can be seen only by functions in its parent directory, and they can be called just by their names.
private
It's not a completely satisfying solution, but that can help.