Ok, you are right. I should test it using Tomcat 6. Which I did right now, and the result is the same - no difference with the order within <servlet> element.
This post is not about accusing Charles what he writes and saying that it's wrong, so please don't take it that way - this is definitely not the purpose of this topic.
It's about getting know what the world "should" means in the book's question (as stated in the first post) and what the situation looks for the present Servlets 3.0.
If the order of the DD <servlet> sub elements was relevant for the Servlet version the book was written for, than fine. But I still think that the question like "can the container force some particular order of the definitions?" is still relevant.
And about Servlets 3.0 in Charles book... I'm holding the Second edition which is subtitled as "with Java EE 6 preview". And in fact there are some additional information about Servlets 3.0 like p. 218 (the very same chapter I was referring to).
If the book was written against Servlets 2.3, that version used an XML DTD rather than an XML Schema for validation. DTDs aren;t as expressive as Schemas, so the rules were a bit more strict.
In regards to "should" versus "must", I'd say they are interchangeable in the context they are being used. As in "you should order things this way in order to avoid causing the server to internally hemorrhage".