See explanations in new doc-comments.
No. PhantomData<Foo> is purely type-level: it would influence the struct in terms of auto traits etc. without actually having a value of Foo.
Here we do have a value of PyBytes pointing to a specific Python object, and want to eventually call its destructor but not as long as PyBytesWithData::data can still be called.