Mario Marengo
Alright; that's enough coffee for you 
But seriously… well… they *have* to avoid collisions at all costs, don't they? And given that VEX doesn't really have “scopes” or namespaces (functions are scopes, but blocks within functions aren't), this is likely the best that can be done at the moment…
Who me caffienated? :-)
Yep, they *do* need to avoid name collisions, but it's pretty darn easy to declare (in this case) the Inline VOP as a function unto itself, where it maintains the same names of it's arguments and return values, and establishes true scope.
Did you notice by chance what happens if you don't use the $param format? No name changes occur, *assuring* collisions, and there's no error raised in the VOP builder to notify the user of the mistake, much less prevent it from happening.
Overall; I'd say use the Vex Builder for combining already existing VOPs (stay away from the inline vop).
No way Man!

I needs my Inline VOP!!! Gotta get to the code directly …
And if you want to make a new VOP, then use raw vex (that's with a *v*, you pervert
) – I've been writing all vops in vex, as you can at least have *some* control over the immediate environment of the vop itself (if not of the other eeeeevil things that may lurk around it).
raw vex …

Yea, I've trying to “catch up” with all the new stuff you can do with VOP's and OTL's, but I don't feel as comfortable doing that quite yet.
Well, darn it all, I'll add that to my list of RFE's for VOP's, have about 5-6 of them, been spending a lot of time build VOP nets the last few weeks and found some things that really slow down workflow.
But this scope issue to me is fundamental to the design of VOP/VEX, it really limits me. Looks like it's time for an HDK implementation instead …
Having found no real solution to declaring my own globals in VEX, I was looking over the VRAY library and examples. There's an example for a lighting and atmosphere shader but nothing for surface and displacement shaders. I'll still keep looking, but would you happen to know if one can write shader functions (or entire shaders) as a DSO, like one can do in prman?
I just got done with a project of converting some 3D Max noise and pattern functions into VEX, but there were a number of limitations that could be easily overcome if I could write it in C/C++.
–Mark