I have created my new Device Template and have built my shell application with GenDCE and SQL2CPP. That all seems to have gone fine.
I'm guessing the best way to implement the RCS thermostat is make a completely separate DCE device (maybe a DCERouter plugin, since it's purely a logic layer?), and to add "send raw x10" as well as a "register to receive X10 events" to the PowerLinc interface so the two can communicate, but at the same time allow other X10 interfaces (e.g. CM11A) to offer the same I/O path. Does that make sense?
This is entirely for my own personal use but I will make the results available to LinuxMCE should they want to include it in the project. Mostly posting this to get design pointers from the LMCE team if I'm on the right track with the RCS implementation, and/or to avoid duplication with someone else working on the same thing.