1. Is a Will Message published on behalf of the client (assuming one was specified on the CONNECT)?
I had always assumes that the answer to this is Yes, however WD04 lines 650-653 say
"If the server does not receive a message from the client.... it disconnects the client as if the client had sent a DISCONNECT message". Now if the client sends a DISCONNECT message then a Will Message is not generated, so that would suggest one isn't generated in the keepAlive disconnect case either.
2. The paragraph then goes on to say "This action does not impact any of the client's subscriptions". This contradicts the discussion of cleanSession in 3.1.2.5. According to that section the subscriptions are only unaffected if the client had connected using cleanSession = 0. If it had used cleanSession = 1, then the subscriptions are deleted when a disconnect (of any kind) occurs.