For all the boxes ticked, the 49ers skipped the loudest one: wide receiver is exactly as bare as it was. The bottom line is a respectable B.
On the needs board they went 1 of 8, with offensive lineman the one that mattered most. Building through the lines is a philosophy, and they stuck to it.
In short, they left a little better than they arrived, which is the whole idea.