Has it always been that bad? I can't relate to it, because BF4 is the first one I've played online. To be fair - the multiplayer experience has been pretty flawless up until yesterday - or the day before when I pressed the "Share" button and I think my PS4 started to upload something somewhere which immediately caused a lot of lag - which I had not experienced before.
Lag is always going to be a factor in online games - there's just no way to completely mask it. In CoD you'd have the exact same frustrating moments, with the small difference that for the most part, your own controls weren't limited or tied to your internet connection. Meaning that lag would show itself differently, but in a less annoying way.
In BF4 it seems - and this is where I am having serious concerns - is that your players movement is limited to your connection. At times last night, it felt like I was playing a slow-paced shooter like KZ:SF because my movements were slow and laggy. At some point, I'm constantly wondering if my movements are off or if everything is working fine because how do you judge it when you're just running a bit slower than usual?
In a technical sense - it feels as if your console is transmitting your x/y/z coordinates and perhaps a vector for attributes where you are facing (among other things of course). It is received by the server, then sends back and your screen is then rendered accoarding to what the server sends you. If your packets don't get there, it's as if you never even made those movements. Is this seriously how the netcode looks like in some of these online games? Doesn't sound like a very clever way of doing it...
I don't want to move over to CoD again. I really dig the online gameplay of BF4 so far, but I can see issues like these really killing the whole experience.