There is one important, fundamental difference here: {cfs,rt}_{period,runtime}_us is a property that applies to a group of threads, it can be sub-divided. We can consume 100ms of quota either by having one thread run for 100ms, or 2 threads running for 50ms.
This is not true for capacity. It's a tag that affects the individual threads it's applied to. I'm also not sure if it's a hard constraint. For example, suppose we set a max that is smaller than a "big" cpu on an asymmetric system. In the case that the faster CPU is relatively busy, but still opportunistically available, we would still want to schedule it there. This definitely seems to make more sense as a per-thread interface in its current form.