I revisted this thread because I recently got this a redeclaration error with this in my <fm>.script function:
some_function_name(entity bob, ...) {...}
I was getting a "Type mismatch due to redeclaration of 'bob'" error. After wasting buckets of time looking at my code, I found this forum thread, and realized it's just a naming conflict with some "bob" function in the standard distribution.
And specifically \tdm_base01\script\tdm_events.script(270): scriptEvent void bob(float speed, float phase, vector distance);
But what's insidious here is that the conflict is with a local function parameter name, and any decent language would not make this a conflict. Because of that assumption, it took me a longer time to realize the cause, and the easy solution to just rename the parameter. (Namespace as HMart mentioned above would work too).
Maybe this is not a language design issue, just a parser bug. Don't know.