Good layout and grounding seems to be poorly understood out there so religion finds a foothold. You are right, there is really very little reason to use both the top and bottom of a two layer board for ground.
What I usually do for two layer boards is to put as much of the interconnects as possible on the top layer. This is where the pins of the parts are already anyway, so is the logical layer to use to connect them. Unfortunately you usually can't route everything on a single layer. Paying attention and thinking carefully about part placement will help with this, but in the general case it is not possible to route everything in one plane. I then use the bottom plane for short "jumpers" only when needed to make the routing work. The bottom plane is otherwise ground.
The trick is to keep these jumpers on the bottom layer short and not abutting each other. The metric of how good a ground plane is left over is the maximum linear dimension of a hole, not the number of holes. A bunch of short 200 mil traces scattered about won't keep the ground plane from doing its job. However, the same number of 200 mil traces clumped together to make one island a inch accross is a much bigger disruption. Basically, you want the ground to flow around all the little disruptions.
Set the auto router cost for the bottom layer high and don't penalize it much for vias. This will automatically put most of the interconnects on the top layer. Unfortunately, the auto-router algorithms I have seen can't seem to be tweaked for not clumping the jumpers. In Eagle, for example, there is the hugging parameter. Even if you turn this off, you still get clumped jumpers. Let the auto router do the grunt work, then you clean things up afterwards. Sometimes you can spot a case where a little re-arrangement can eliminate a jumper altogether. Most of your time, however, will be spent moving the jumpers apart to not make large islands.
As for power planes, that's mostly silly religion. Route the power just like any other signal, although in this case you have to consider the voltage drop due to the trace resistance, since power traces presumably handle significant current. Fortunately even 1 oz copper traces on a PCB are quite low resistance. You can make the power traces 20 mil or whatever instead of 8 mils for signal traces. In any case, the point is that the DC resistance matters but it is usually not much of a issue unless you have a high current design.
The AC impedance isn't all that relevant, which the religious folks don't seem to get. This is because the power feed is locally bypassed to the ground plane at each point of use. If you have a good ground plane, you don't need separate power planes for most ordinary designs, just good bypassing at each power lead of each part. The bypass cap connects directly between the power and ground pins, then there is a via right at the ground pin to connect to the ground plane on the bottom layer.
The high frequency power loop current of a part should go out the power pin, thru the bypass cap, and back in to the ground pin without ever running accross the ground plane. This means you don't use a separate via for the ground side of the bypass cap. Connect it directly to the ground pin on the top side, then connect that net to the ground plane with a via at a single point. This technique will help a lot with RF emissions and cleanliness in general.
There are pros and cons.
The advantage of ground on both sides is that you can tie the two ground planes together directly with vias. The advantage ofone side power and the other side ground is that it can provide lower DC voltage drop.
Whatever you do for high speed signals you need to think about your high frequency return paths. The return path should generally be as close as possible to the signal path to minimise inductance. If part of the return path flows through a power plane and part through a ground plane you can tie them together with a capacitor.
A 2 layer board will always be a compromise for high speed because your planes inevitablly end up quite "cut up".
As far as providing power decoupling for the ICs themselves the general rule is that it should be as close to the IC as practical. Your board seems to have a lot of unnessacery space between the capacitors and the IC.
Best Answer
Ground pour on the top layer is not really doing much. Having a ground pour on the top would make make sense if you didnt have a ground plane on the bottom. So definitely add a ground plane on the bottom and try and keep all routing on the top.
What I would do is have a power pour on the top, and a solid ground plane on the bottom. Now all your return currents have somewhere to go won't fringe across gaps or over other traces.
The ground pour on the top layer (under the microcontroller) does nothing. It has no harm, but it really doesn't have a benefit either (assuming you have a ground plane).