The YUM provider for the package type ignores the source parameter, and instead uses the name parameter for all package installation tasks. This behavior is somewhat inconsistent with other providers for this resource type.
For example, with the RPM provider, the name parameter is compared against the packages instances list. If the defined package is not installed but should be, the provider will then download the package supplied by the source parameter and install it.
With the yum provider, in the same conditions, puppet will kick off a yum installation of the named package, not the package supplied by the source parameter. This is okay if the desired package happens to be in a configured yum repository, but not so great otherwise.
YUM fully supports installation from a source path; on older releases using the localinstall command, and on newer systems using the install command.
This behavior is useful for multi-platform support and for module testing. In testing, I may wish to pass a explicit source for a package, without overriding the native provider on RHEL and derivative systems. It's also useful since YUM will still manage dependencies, even when supplied with a source URL.
This also ensures that the documented behavior of the YUM provider matches the actual behavior.