R_N:
General: I think just in general, after completing the regional dex, they should look through it and note any Pokemon which requires an item to evolve and strategically put at a point in the main game where the player should be evolving their team to their final stage which would be around 3/4s way through. As for any other item it can be left for post game or if they have an affect can be placed anywhere as the Pokemon who uses it to evolve isn't available (supposedly) so it wouldn't matter as long as its in the game somewhere for later.
Stones: As you noted, the Stone Shop is the answer but yet they refuse to use it. If they don't want to make it that easy how about have us getting access to the Evolution Stones be part of a quest. Like in the beginning they have no stones but throughout the game you encounter a worker for the store at an entrance of a out-of-the-way cave which has a type of stone in it. For some reason they can't go in but you can and upon completion they'd be able to now stock that evolution stone to sell (and you're given a free one as thanks; they can say the stones in the cave are initially too rough for use to explain why you can't pick them from there).
Though that said they should also place as many stones needed to evolve all Pokemon that needs a stone in the regional dex some place in the world, once again at a point where the player should be evolving their team.
You don't even need to lock it behind a sidequest, just lock it in the same way the main shops do and base it on progress.
But also
don't do that because that allows them an out and put good stones at the end of the game for no damn reason
The general* idea behind stone evolutions is a trade off. You can evolve
now and get a big boost in power for that point in the game, but give up regularly learning moves outside of TMs (which depending on the game are one use, rare and/or possibly post game). When you put them at the end of the game, you are just arbitrarily cutting off the ability to evolve them for no reason and forcing players to instead make a choice of "do I even want to use this thing or should i save the stone for something competitive" (or whatever). This is why Kanto, the most boring region with pretty poor balance, inexplicable does this the best. You get access at the point in the game where you suddenly have several pokemon that can evolve by stone and a store that sells stones; and if you find you messed up, then your only punishment is needing to re-raise the pokemon and then just buy a new stone. Again, complicated by moon stones, but the idea is still there.
You also get the idea they didn't really think the placement through at all? RSE puts one freebie around Hoenn. These freebies make sense thematically: Fire stone in fiery path, thunder stone in the power plant, etc. But they are not balanced at all. The water stone isn't avaialble until basically end game while you get fire stone around the mid game, for example.
And on top of that there's just no reason to make some stones more arbitrarily special than others. The Moon Stone almost uniformly goes to pretty subpar pokemon in the first place. Sun stone only results
in subpar pokemon. The gen 4 stones are always grouped together for no reason despite (mostly) following the same conventions and are always ~hard to get~ without just being an event like sun & moon stones.
*There's some exceptions, of course. Eevee's an obvious example, more designed as an inverse because of its gimmick. The Dawn stone also breaks this convention, probably for the same reason Politoed pretends its a stone evolution since its split off Poliwrath.