To start with, I think you should get a nice tight patch for switching garrays to using 'move' so we can see if this is really worth pursuing and what problems in might cause.
Please keep on experimenting with all things. But just so you know, if you want to get these patches included into pd-vanilla or pd-extended, they either need to be small or really well tested. So completely reworking garrays is probably something better attempting after we know that this core idea works out well (using move instead of delete/create).
.hc