Using the techniques described in this thread, there can be a flicker as the cursor lands in the contenteditable area, as Prosemirror determines which side to put the decoration.
Watch closely (you might have to step through frame by frame) and you can see the cursor move from the end of the placeholder to the beginning.
…has anybody else noticed this, and is there anything we can do about it?
That’s css for a pseudo-element. Node decoration adds a class to a block element like paragraph, then use paragraph:empty-node::before for placeholder.