We've successfully upgraded from version 2.x to 3.x and are now on 4.x and I didn't a have any issues each time.
The problem is that I know that the OpenVZ to LXC migration will drop some required features for my use case in terms of isolation of untrusted containers, so whilst I'm sure 3.x to 4.x migration will be fine for many users, for some it won't be until LXC (and then Proxmox 4.x) gets those features. I fully expect LXC (and so Proxmox 4.x) to get there, but it's not there yet for my use case.