Alrighty I have the better answer. @Zbulo
Just confirmed it in my own environment.
Update Contact phone numbers overwrites the entire array of phone numbers with a new array. NOT one phone number at a time.
Here is the easy way to do it, that costs more operations.
you can save two operations per contact update if you do the array edit with IML formulas instead of modules.