CSS Scoping говорит
Потомки теневого хоста генерируйте поля, как если бы они были содержимым элемента.
 Псевдоэлементы CSS описывает ::before и ::after как
эти псевдоэлементы генерируют ящики, как если бы они были немедленными дети их происхождения
Итак, кто из них верен?
-  Во-первых, все содержимое теневого хоста (не включая ::beforeи::after) заменяется содержимым активного дерева теней. И затем,::beforeи::afterгенерируют поля в теневом хосте.
-  Сначала ::beforeи::afterгенерируют поля в теневом хосте. И затем все содержимое теневого хоста (включая::beforeи::after) заменяются содержимым активного теневого дерева.
Firefox и Chrome делают первое, но специфицирует ли спецификация поведение?
var root = document.querySelector('div').createShadowRoot();
root.innerHTML = "<p>Shadow content</p>";div::before, div::after {
  content: 'Generated content';
}<div>Content</div>