They don’t have full control. Apple can’t add instructions, only Arm can. If they want something new they have to go back to Arm, sure hey probably have lots of pull, but that’s the way it is. And one reason ppl like RiscV.
It was discussed a while ago here on HN: https://news.ycombinator.com/item?id=10190521
By changing a few registers, you could alter how instructions were interpreted. This was used by some vendors for hardware-software interfacing, and by others to provide specific acceleration primitives for their specialized workloads.
ARM used this mechanism themselves to offer an optional floating point unit, with specialized vectorized floating point instructions.
Unfortunately, support for coprocessors has been removed from ARMv8.