It looks like a great fit, conceptually.
Then use it, conceptually.
The problem is that no one is maintaining firmata for the Arduino, making it handle new boards and new USB-to-serial chips.
What most people are doing is putting the intelligence on the Arduino. After all, that's why most people bought an Arduino. Not because they need to attach peripherals to the PC. If you still need to do that, develop and implement your own protocol. It is pretty easy to send something like "R,D,12" to the Arduino, and have it figure out that you want it to read digital pin 12. "S,4,0" to set pin 4 to LOW. "S,5,156" to set the PWM value of pin 5. "R,A,3" to read analog pin 3.
The advantage is that you can do things like "P,6" to read the PING sensor on pin 6, which you can't even think about doing with Firmata. Plus, your protocol will expand to additional boards and USB-to-serial chips.
You can even add error checking, so that "R,A,42" or "S,134,2903" returns an error message, instead of a meaningless number.