Agree with what you say Dave. Regarding not wanting jobs to use certsin cores ie. reserving low-numbered cores for OS processes then surely a good way forward is to use a 'boot cpuset' of one or two cores and let your jobs run on the rest of the cores.
You're right about cpusets being helpful with 'badly behaved' jobs. War stories some other time!