Generally, for flexibility and scalability you should ask 'what is the advantage of building multiple files in the same rule'. It is probable that the first time you do a build, it's going to be quicker if everything gets compiled with the same rule.
However on subsequent steps, if you just alter one source code file do you really want all the other source code files built to object files? I'd imagine not. But if you have it all done in the one rule, that's what'll happen. And that will be expensive if you have a lot of source code files.
This also means if you're building libraries, you'll want to build the library as a separate step, rather than saying having one rule that compiles all the sources and then archives the library. Of course, in that circumstance, it means that the library archive step doesn't need to know how the source code was compiled, or even what language it was in, which makes for easier maintenance.