So far I have repaired three VESC6 that have failed for various reasons. Here is what went wrong and how to prevent similar failures. I will update this thread if I repair more VESCs that have failed for different reasons.
I got two VESCs where the STM32F4 had died. The reason was that the ADC inputs for an analog throttle have been connected in parallel. When VESCs are connected to the same battery there will be a voltage differential between them under load due do inductance and resistance in the cables. This voltage differential can reach quite high values and the MCU pins are very sensitive to that. Negative one volt is sure to kill the input and short the whole MCU. The PPM input is slightly less sensitive to this than the other pins as it has a low-pass filter, but it still is a bad idea (the VESC4 had a slower PPM filter and was slightly less sensitive). The CAN-bus can handle around +-60V difference, which is why it should be used on a multi-VESC setup. The CAN-bus also provides other advantages such as cruise control with several motors and traction control.
Solution: Always use the CAN bus to connect VESCs in parallel and set up the apps accordingly. Never connect the other inputs in parallel in VESCs that are connected to the same battery.
Dead voltage regulator
One of the VESCs that I repaired had a dead 3.3v regulator. One way to kill the regulator is to feed it backwards with a 3.3v source, which has happened to me a few times when connecting a programmer.
Solution: Never feed the 3.3v net with voltage, only current draw is allowed. If you, for example, have a stlink v2 from ebay that outputs 3.3v on a pin then don't connect that pin - power the VESC from the input while the programmer is connected.