Having ThrottlingAttribute depend on jobFilterProvider in its initialization and have the default constructor look for a static JobFilterProvider is not a good design
From documentation I’ve understood that UseThrottling method globally is optional, but actually is not so because that one initializes the shared static variable for JobFilterProvider for ThrottlingAttribute. So you cannot use just ThrottlingAttribute without calling the other.
Secondly you may use ThrottlingAttribute on a job class that’s declared in a service that will not actually execute the background work but just schedules some background work. You cannot do that because UseThrottling must be initialized in all such projects. Behavior description is not separated from behavior implementation properly in this case.