Yes, there is a big reason that people use Ceedling (or some other command-line oriented tool that they've customized like make or rake): To properly unit test, we want to test each unit completely, independent of its neighbors. To do that in C, the easiest way is to build those unit tests in its own executable.
For example, if I had a project that was only two modules A.c and B.c. and A made calls to B, it would be easy to write tests for B... but writing tests for A can be challenging. What do we do when it makes its calls to B? If we compile them both together, then a test for A also involves retesting B along with it (in a much less effective way) and we still may not be able to full test A. The problem gets worse as the number of modules goes up.
The build systems built into most IDE's are focused on creating a single executable, not an executable for every test file. Ceedling, on the other hand, was built specifically for managing tests and can build and run all the different test files and circle back with the summarized answers when finished.
You CAN get it to work another way, but it's going to be harder and ilkely less effective.
This also applies to your second question. You CAN use a simulated peripheral, but you're less likely to be able to fully unit-test a module doing that. Do those types of tests still have value? Absolutely! Particularly they have value when you're trying to write a driver for that peripheral in the first place... it's good to get that feedback that you're on the right track. But if/when you want to unit test that module, it's unlikely the simulated peripheral is going to provide all the means of emulating error conditions and whatnot that you'll need to do the job right.
Make sense?
Mark