That is correct, it gives an error message.  I don't think an error message suggesting the RPM provider necessarily makes sense because if they're using the NIM provider, that means that the package file is not available locally... so they'd probably end up having to change the manifest to copy the rpm file down locally, use the RPM provider to downgrade, and then change the manifest *back* to use the NIM source since that's clearly where they wanted to maintain the package file or they wouldn't have used the NIM provider initially.  That seems like more work than just manually uninstalling the package and then allowing puppet to install the correct version from NIM on the next run.  Does that make sense?