Currently the book module constraint validation relies upon the form being present on all node edit forms, the issue only occurs in the event of the validation being fired when a page is saved to a draft state.
In this scenario the validation checks the content against the original version (with the default pid of -1), which is the default of the form, but not of the linkDefaults.
So there are two action to fix this problem, 1) change the getLinkDefaults so the pid is by default -1 (as it will be from the form anyway), or 2) change the validator so if the 'original' is empty, then it checks against the presence of -1 (where a form was present) or 0 if the page had no form.