OTA, as I understand it, only works if you have not used more than half of your progmem. OTA uploads your code to the unused half of progmem then changes the start vector. Your prior code is still in progmem, but nothing points to it. If you upload by OTA again, then there would be two copies.