Sorry for the delay in responding. Many thanks for reporting this.
I think Saxon 9.6 is implementing the rule as it appeared in the December 2013 draft of the spec (http://www.w3.org/TR/2013/WD-xslt-30-20131212/) which stated:
Each node is labeled with a pre-descent value for the accumulator, which is the value of the accumulator variable immediately AFTER processing the first visit to that node, and with a post-descent value for the accumulator, which is the value of the accumulator variable immediately BEFORE processing the second visit.
This rule was changed in the October 2014 draft.
I'm not entirely sure of the history, but this bug entry:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=26737
(in Sept 2014) observed that accumulator-after returned the value BEFORE processing the second visit, and we may well have made the change in response to discussion of that bug, in which case if changed very late before the Oct 2014 draft (and Saxon 9.6) came out.
More pertinently, it appears that the change has still not been implemented in Saxon 9.7 (the development branch). I will certainly ensure, now it has been brought to my notice, that this is fixed for 9.7. I will have to consider whether to make the change for 9.6 (a) based on how difficult it is, and (b) after thinking about impact on compatibility: when the spec changes after a release comes out, we generally leave implementation of the change until the next major release, rather than retrofitting it in maintenance releases.