Technically you shouldn't have to do deletes for order details when it is used in checkout.
The reason why it does deletes is that the same two server behaviors can be used to create a "registry" or "wish list" cart that updates every time you add an item to it. In that case you need to make sure old items are removed because the entire cart is re-inserted.
In the checkout scenario the delete code should never delete anything since there won't already be orders details associated with the order being inserted... so the delete does nothing in this case. In some cases users insert order details before going to paypal standard and just mark them as confirmed on return. This is another case where delete is needed in case someone cancels and decides to go back and continue shopping after visiting the paypal site.
The short answer is the delete is there just in case it is needed, but in your case it should not be needed but shouldnt' harm anything when configured properly.
The string is a standard string used in the DW insert and update server behaviors. We borrowed the syntax for consistancy. It is a multidimensional delimited array as you have guessed. You first break it into an array around the "|"... and there should be one for each column.
So this string has five columns. Then the next array is split around the comma... so you have two groups:
none,none,NULL
and:
',none,''
These change according to your database field type:
encapsulating character, included value ,not included value
encapsulating character is usually a single quote for text or varchar fields and none for numeric fields at least in mySQL.
included value replaces the actual submitted value when present. It is mostly used for checkboxes and boolean fields so that you insert 1 or 0 regardless of the actual input.
not included value is the default to use if the field is not included in the form.