There's nothing special about waveform or family objects. As far as SKILL is concerned these are just variables containing a special type of object - it wouldn't treat them any differently in terms of how they are passed to the function.
My guess is that your code has a recursive call inside (maybe using famMap?) which is only passing a single argument to the function. The first and third examples are failing (correctly) because the wrong number of arguments were being passed, and the second is passing that hurdle, but failing when the same function is recursively called.
Of course, this is a wild guess because (as Bernd said) you didn't show your code, so it's hard to be sure.