In my thoughts on using the Adruino with TMCC or Legacy, the Arduino would logically be in parallel with the Cab1 or Cab2 - meaning I could send any command from the Arduino that I could send from the Cab1 or Cab2. A simple application could have the Arduino sense (via isolated outer rail section) when an engine enters a auto/pedestrian crossing and the Arduino blows the horn.
Once you get the Arduino and associated hardware with its programming capable to send TMCC or Legacy commands, you can just about do anything from the Arduino - you imagination becomes the limit.
My personal interest has to do with the DZ2500 switch machines, and making a central switch control panel. I am running DZ2500s by there serial capability, thus the Arduino could send commands to the switches. I was hoping to use the capability of the DZ2500 via its serial where you send a switch set address command to a switch (the switch set address sent is the address that the switch was set to during layout set up), and the switch will return FFFF for one direction, 0000 for the other direction. For example, one switch on my layout is set to address 20. If I send a switch set address command containing the address 20, the switch 20 will return FFFF for one direction, 0000 for the other direction.