Disclaimer that a lot of my knowledge on this subject is not from hands on, but research. I have lots of experience with cDAQ, and lots from FPGAs, but not so much when it comes to RT or embedded targets other than FPGA.
When using a embedded target, you'll program on your normal host (usually Windows) machine and in the project you will add your target. Then you will write VIs for those targets and deploy from within your host. Then some level of debugging is done on that host machine, for the code that is running on the target, this always involves seeing front panels, but also some level of probing for some targets. (for example FPGAs don't allow probes breakpoints etc.)
When using a cRIO almost all I/O go through the FPGA. There are exceptions for things like serial ports which I think just show up as a VISA resource. So full cRIO applications may have three targets, the FPGA, the RT, and Windows, all in the same project. But for debug you can temporarily ignore the Windows target, and for the FPGA you might be able to get away with the Scan Engine, which is a FPGA profile that just reads all data and sends it to the RT. So you might be able to get away with just needing to write one program, but then when you need more control you can write code for the FPGA, and then a custom UI might be needed on Windows. All three targets have the familiar LabVIEW IDE, just some have a subset of palette items.
I have never used an embedded cDAQ chassis but I believe they are a target in the project and you write code and deploy it like before. But in this case I/O go through DAQmx and not through an FPGA. A lot easier, but less flexible.