The original analogy involved a principal (a fairly complex process) who instructs a group of students (a collection of complex processes) to go to various classrooms (a fairly expensive / time consuming task). The pseudo-code he has breaks most of these assumptions and results in a simple single threaded task calling move-to-classroom routine that is so trivial that the implementation is not even shown. His straw man analogy is thus not correct.
It could easily be the case where the analogy is correct. e.g.
- This is distributed system run on a server farm so the principal and each student could easily be run as separate processes and thus giving responsibility via messaging would be more efficient.
- Assigning a student to a classroom is an expensive operation. Perhaps many transactions have to be made, email needs to be sent, humans need to approve, etc.
In this case, implementing this system (especially with a technology such as actors) would very closely parallel the analogy and the anthropomorphism would aid in communicating the design. The straw man argument that the author dredges up is a very simple example not worthy of most tasks a software developer faces in the 21st century.
Any analogy can be incorrect. Don't use them if they're incorrect.