If you are asking about a style convention, I am not aware of any.
You could use variable names with ! to emphasize that they change the argument (eg foo! = ), but in your example (::Foo)(::Int) changes a global state and ! is usually used for mutating the (first) argument. Perhaps use a different API, with a descriptive function name like increment_global_count.
No. Not more than giving your singleton object a name you want by assigning it to a (constant) global variable. Note that such enforcement doesn’t even exist for “normal functions” either. Everyone is free to do f = push! and use the f that doesn’t have the ! in the name.