This is a bug in the Flying Saucer (xhtmlrenderer). There BlockBox.javais a function in B satisfyWidowsAndOrphans, but it is called only after the call isNeedPageClear. I created an issue in the problem tracker.
Please note that the page-break-inside: avoid;css rule works.