Remove the "AllocTempPipelineStateBinding" interface. This is clunky, and intended to be temporary to move the allocation logic out of command list compilation, and into the Graphics::Shader level code.
Add either a new type of resource for binding, or a "binding shader". This should take care of all calls to set descriptor tables, root descriptors, etc. This would be the replacement for "AllocTempPipelineStateBinding" in the long run, and help to remove redundant calls to setup the bindings internally.
Regenerate shader code per-technique to remove redundant binding sets entirely.