Sui protocolli. Dipende. Nel mio caso uso roba leggibile perché ho aggiunto la possibilità di interagire da parte di umani tramite un terminale, un po' come i comandi AT per modem e ESP8266.
Si ti capisco, ovviamente non conosco il contesto delle tua implementazioni quindi può darsi. Ma anche se fosse, basta usare caratteri "leggibili", nell'esempio dell'OP se mando "0" invece di "spento\r\n" e "1" invece di "acceso\r\n" è sufficientemente comprensibile anche da un umano credo...
Poi ci sono anche altri casi in cui questa cosa si può fare (per dire, negli anni '90 realizzai un antispam che divenne anche abbastanza famoso, Spam Terminator, nel quale implementai un server SMTP ed un client POP3, protocolli che dialogano comunque con linee di testo, quindi "da umano") ma dipende dallo scopo del progetto e soprattutto dall'abilità del progettista e del programmatore. Se uno non ha mai avuto a che fare con protocolli e per di più ha scarsa pratica con il linguaggio e l'ambiente, direi che meglio mandare "0" o "1" senza auto-complicarsi la vita..
