According to this discussion on Twitter, the docs don't reflect intended best practices.
I think the docs should be updated to reflect usage of abstract when an object can automatically be created, and should only use a provider method when a provider method is actually needed.