From looking at VE, it doesn't look like the mw:Placeholder is doing anything:
modules/ve-mw/dm/nodes/ve.dm.MWEntityNode.js:
ve.dm.MWEntityNode.static.matchRdfaTypes = [ 'mw:Entity', 'mw:DisplaySpace' ]; ve.dm.MWEntityNode.static.allowedRdfaTypes = [ 'mw:Placeholder' ];
Semantically, mw:Placeholder is supposed to mean, "don't touch this". That's not the case here, mw:DisplaySpace should be treated just the same as any other space.
Note that treating mw:DisplaySpace the same as an explicit entity is probably not *quite* right, as there may be corner cases where the context around the mw:DisplaySpace changes how it is serialized. In the worse case this could lead to either a dirty diff (where a plain space in the original turns into a non-breaking space) or a violation of WYSIWYG (where a non-breaking space in VE turns into a plain space in the original). It's not entirely clear what the "right" behavior here is; given that VE treating mw:DisplaySpace as mw:Entity has not led to complaints so far, we can probably keep this as-is. But there's the possibility that we might want to tweak this behavior somehow in the future.
As T254512: mw:DisplaySpace doesn't need a data-parsoid src points out, once we remove mw:Placeholder we can/should also remove the data-parsoid attribute on these spans.