What is the distinction you are driving for between `BSLS_PERFORMANCEHINT_OPTIMIZATION_FENCE` and `BSLS_PERFORMANCEHINT_PLACEMENT_NEW_FENCE`?  `BSLS_PERFORMANCEHINT_PLACEMENT_NEW_FENCE` seems too narrowly aimed at the specific use it is put to in `bslalg_scalarprimitives.h`.