Title::newFromText() uses an internal cache that assumes Title instances are immutable value objects (or at the most, get updated to reflect the current state of the database).
However, there are some modifier methods on Title that break this assumptions, namely setFragment() and setContentModel(). Calling these on a Title constructed via makeTitle() is fine, calling them on a Title constructed via newFRomText() will corrupt the cache by modifying the cached instance.
This is highly surprising to callers, and can lead to obscure bugs.