The code in Parsoid/extension/src was copied into VE in order to provide 'zero-configuration' VE for MW 1.35 LTS.
Parsoid later renamed a method in DataAccess. This broke the copy embedded in VE -- and what's more, broke it in a way we couldn't easily "migrate". Because the Parsoid/Config/* classes are *interfaces* not *abstract classes*, we couldn't ship (even temporarily) a stub DataAccess::fetchPageContent() method that redirected to DataAccess::fetchTemplateSource(), or vice-versa. Basically, it's not safe to add or rename any methods in an interface, or your implementers will immediately break.
Maybe this is a non-issue because the only ones implementing the Config interfaces is us. But it may also be worth considering whether we want to change them from interfaces to abstract classes before releasing these as stable, so that we do deprecation/renaming/new methods/etc in the future safely.