Centering seems to be off by just one character.
Well, the errorneously unstripped space...
combination of LineLayoutManager.getNextBreakPoss and LineLayoutManager.makeLineBreak
Close but no cigar. In getNextBreakPoss, the code handles lines which are last lines or end in forced line breaks, which must not be justified (well, handling of text-align-last seems to be missing...)
In makeLineBreak, the space for justification is computed (dAdjust) and then passed to the new LineBreakPosition. Somehow, somewhere there must be leader expansion, space-start and -end adjustment and resizing of resizable spaces. It should be called from the renderer just before rendering, because of expansion of forward references, but I haven't found it. I somehow guess the code just doesn't exist, which would neatly explain why text-align+"justify" hasn't any effect....