The top of page 465 contains your answer. Both fooRequest and fooResponse have a part with the name "book". Since book is declared by both the input and output message it is a INOUT parameter and requires a holder. If fooResponse part on the other hand had a different name (such as "book2") then I believe that the generated interface would of had a return value of type Book and an input parameter of type Book. I hope this helps. Be sure to read section 18.104.22.168.
Arch enemy? I mean, I don't like you, but I don't think you qualify as "arch enemy". Here, try this tiny ad:
Devious Experiments for a Truly Passive Greenhouse!