Wrapping routines (and variables too) in "static" classes, is a very good practice. It is a way to force qualifying function calls (and variables).
A very (c++/java)ish view
Please avoid using this argument.
which was formed exactly because a lack of "interface/implementation" division.
Of course not. When you create a function intended to be used by other units, you have to declare it in interface section, don't you?
Then your options are:
1. give it a long and cryptic name and hope that it won't clash with some other identifier.
2. write a comment above the declaration to ask users not to forget to prefix it with unit name, or to think well about order of units listed in uses section.
![Roll Eyes ::)](/Smileys/ExcellentSmileys1/rolleyes.gif)
3. put it in a class, let it be a class static method -- now you do get help from the compiler, which won't allow using your function without prefixing it with class name.
Choose according to your personal preferences.