Microcontroller communication today?

As personal computer technology continues to evolve, I have wondered if my book is becoming hopelessly obsolete in the area of communications. As levels of circuit integration increase, I have this vague dread that my emphases on efficiency have been trampled down by the march of technology. Even a decade ago Silicon Labs was showing what could be done when the lowly 8051 microcontroller became simply the ‘core’ of an IC with hosts of additional features…analog input and output, huge number of I/O pins, timers almost without number, and a USB interface to keep port pins free…and the cost declined to the point where using older versions of the 8051 with additional wired-in devices became of questionable economic value.

So I am asking for input on the communication section of C and the 8051. I devote several chapters to RS-232 as well as other low-performance protocols. These are extremely efficient, using only a couple of port pins and low enough speed to have no wire routing issues, but you can barely find anything on a PC that is that primitive. Is there still any use for simple microcontroller-to-microcontroller communication, or should all attention shift to USB? As I say in the chapter on USB, it is complex beyond imagination. Admittedly the newer versions of USB demand backwards compatibility with the very slow modes, but the entire process of exchanging a message seems quite cumbersome. Are the newest devices coming with completely pre-programmed USB controllers so the microcontroller designer only leaves off a message for the separate sub-system to handle?

In short, is anyone willing to make comments on the present state of microcontroller communication?