what you want is libmonome: https://github.com/monome/libmonome
it allows a direct connection without using serialosc (serialosc is built on libmonome)
regarding the serial.txt, yes there may be errors in it-- it’s a largely ignored document as more or less everyone uses serialosc-- you’d need a very specific situation to code to serial. even on raspi/etc serialosc works great. i know for a fact that firmware version request isn’t implemented in firmwares.
i don’t believe there is a way to identify 2011 vs 2012 arcs, off the top of my head.