`Replace` (and `LazyReplace`) must check that their source node actually has positions at the initialization time so that we can raise a meaningful error.