One criticism I'd have of 5/3/1 is that it attempts to place equal priority on all 4 major lifts. I think it would be better for most people to make one or maybe 2 lifts "priority lifts".
Under what conditions?
And how does that manifest itself in programming?
I've found this to be the case, too. It's quite rare once passed newbie gains that all 4 big lifts will progress at the same time. I don't really know "why", if i'm being honest. It must be a recovery thing i.e. to progress you need to get stronger and to get stronger you must recover. To trigger the need to recover you need to add stress. Maybe it's too much stress all at once to recover properly from all of it. As I said, I don't really know why but I have found it to be the case.
Sometimes, I think we focus too much on the trees and miss the forest because it has also been my experience that when your DL moves up your squat moves up and vice versa. Not all the time but most of the time. More so, an improvement in the squat seems to give carryover to the deadlift but not as common to see the opposite. This is however where it's completely individual and emphasises the need to experiment for yourself because, if your posterior chain strength is holding back your squat, then it's going to be tough to increase the squat from just squatting, regardless of sets/reps/progression that are used. However, if you're hammering the DL, too, and therefore, your PC strength, then guess what happens to your squat after you have "cemented" some new DL gains....
So, if your DL is staying put but your squat is progressing, then maybe it's not the case that you can't improve on both but, you need to improve your squat a certain amount to then get your DL moving.... -Thinking out loud-... So whilst one lift seems stagnant, actually it's indirectly moving up.
I also see it with pressing and row strength quite a lot. Presses won't move but rows are progressing nicely. It's as if they just get to a certain point and something "clicks" with the presses and they start moving. Almost like some lifts give "juice" to others.
From a programming stand point, to me it's very similar to my argument for beginners focusing almost solely on compounds. Hit everything and see what moves up and what doesn't then re-evaluate. If, for example, your DL is moving but your squat isn't, then you don't want to stop training something that's improving so you'll keep DL as a priority. In terms of squatting, I would then program it in a way that exploited other weaknesses. For example, if you have a tendency to round your upper back when squatting, then i'd program front squats. Slow out of the hole, box squats, maybe speed work, possibly both. I would essentially program your squatting to force you into uncomfortable movements, to force you to take control and groove the bar and become more "skilled" at that lift (and not just re-grooving bad habits). Meanwhile your PC strength is on the up from your DL day. However, without first focusing on all the lifts at once and experiencing which ones will stall and which ones will move, you won't know which way you need to go. To finish off the analogy, my argument against loads of isolation for beginners is that you don't know which muscles will be stubborn and which one's will grow with little direct work until you experience if for yourself - no successful body builder has ever had all muscles grow evenly throughout their lifting career, just like no power lifter will see all lifts move up at the same rate throughout their lifting career. If you're a BB'er you need to accept you'll have lagging body parts throughout your training and as a lifter you need to accept that certain lifts will stall throughout your training. It's how you get over the hurdle that matters, in my opinion, and it's much easier to get over a hurdle if you can see it coming in advance.