functions is the word used in c_script. It can still be used, and can return (I think it returns var only). void simply means that it doesn't return anything, just like you said, and I use it cause it's an awesome word (I just like "void"), because it's shorter, and because it gives reminds me of the fact that the function doesn't return anything. If a function should return something, I use int or long or var or ENTITY* or whatever it should return. Gives it more structure and makes it a little easier to read... and I dislike the c_script syntax.
as for the overrrunning entity event triggering, I don't think anything's triggered, since it ignores it until the other entity returns "1".