I would say the other thing to consider is that there's more parity between players in the NFL in comparison to other leagues only because there's so many players all over the US.
A 1-3 rounder is in essence a player you want starting on your team/future starter, and contracts do play a big role in whether one wants to give up one of those first 3 picks for a player. Teams with bad contracts will look to just offload and take the cap hit for the best deal they can get, sometimes it's not what they want, but what's best at the time.