There is a problem with the iOS platform only when running build multiple times. The problem appear to be with the last function in plugman/src/util/config-changes.js where it locates the config.xml file. This function does a global find in the project tree for config.xml and takes the first one - for anything except android and ubuntu. In the case of iOS, this works the first time - locating the one in the project dir, but on subsequent prepares it chooses the config files in the build/device/... directory.
Is there a reason for this global search instead of specifying the location? It clearly doesnt work right in iOS, and I suspect other platforms might experience the same issue.