@mcc depending on the arch, the protections may be a finite resource, particularly embedded riscv.
So splitting a range, and then adding a new protection range may fail, I don't know how important that is in your environment, but there's not necessarily a guarantee that the "partial free" is possible.