The layout engine doesn't handle soft hyphen. There are a number of ways to
handle this.
If we remove it from text before it is passed to the layout engine, then it's
difficult to map glyphs back to user text properly. On the other hand, if we
pass it down, the layout engine doesn't always know when a SHY is at the last
position in a sentence, especially since line break is not usually done at the
first pass through layout. I think though that the java line break will ask
layout to regenerate the glyphs for text at line break boundaries, and so it may
be that layout would be in a position to substitute null glyphs for SHY only
when it is between two adjacent characters and nowhere else (between quotes or
spaces, say, or at the end of the run of text handed to the layout engine).
OpenType might have some processing for this but I don't know.