If the dump order is deterministic, I think its cleaner to put all versions in the same file.
Benefits:
+ Pretty looking filename
+ Same file structure for all object types, no special exception for functions
I think there's a merit to keeping all overloaded variations of a function in a single file, apart from the simplicity and benefits noted above. A change in one variation of the function may also be applicable to other variations, say in bug-fixes or enhancements. So keeping all variations in one file would make sense, since it is logically one object.
No they are not necessarily one logical unit. You could have a bunch of functions called, say, "equal" which have pretty much nothing to do with each other, since they refer to different types.
+1 from me for putting one function definition per file.