Shelby? UGHHH! I intensely disliked her character. She is the last person I would want to see as XO! She was annoying, and just not likeable for me. Although, I am surprised they didn't re-use Shelby as Captain of Voyager, instead of creating Janeway.
I think by Season 4, had Riker left after BOBW for a command of his own, Data should have been next up as Picard's Number One. Worf as depicted in TNG, while a good officer, was never qualified to be second in command of the Enterprise.
See, I liked the character of Riker, and Frakes, but I also agree that it never made sense after BOBW, for Riker to turn down a Captaincy, especially after he already WAS promoted to captain, once Picard was captured. In essence, Riker helps save Earth and gets DEMOTED for his trouble.
I'm personally a fan of the idea that they should have written out Will Riker somehow (be it promoted, or killed off), then promoted Data and Worf, and introduced Tom Riker earlier, and assigned him to the Enterprise. Then, occasionally, we could have seen Will Riker make occasional guest appearances aiding Picard occasionally like Sulu for Kirk in TUC, while Tom Riker, who would be normally featured, would have had to work his way up through the ranks, after adjusting to being back in civilization.
It would have given Troi something to actually do, too, as Tom Riker would be both the patient and love interest for her. Would have been nice to see how Tom Riker adjusted, and it would have made a good story arc and he would have been more interesting than Will Riker in Seasons 4-7.