I get what you are saying but this argument is kind of turned on it's head by a team like the Patriots, who have been drafting somewhere around 28-32 spot for what seems like forever and still keep making deep playoff runs.
I will say that SF did a great job by those picks you just listed.
Take a look at this draft grade sheet from the 2017 first round.
https://ftw.usatoday.com/2017/04/2017-nfl-draft-grades-picks-analysis-results
Look at the guys who were taken 16th or below.
Adoree Jackson, TreDavious White, TJ Watt were all still on teh board at the #18 spot.
Those are top tier players.
We could have had TJ Watt. Instead we took Taco who isn't even on our roster anymore after 3 seasons.
Crazy. But anyways, I digress--my point is, we just need to make better use of our top picks like some other teams do.
By the way--read some of the grades on this sheet. Guy who wrote the article looks like a moron. Gave KC a C- for taking Mahomes at #10, said he "isn't anywhere near NFL ready and may never be".
Meanwhile he gave us an A- for the Taco pick. What a dope