Do you have anything against placing the ground vias directly on the GND pads of the SMD components? I know some fabhouses don't support it or maybe there's trouble with SMD reflow soldering because open vias will suck in solder paste. But, if you're doing soldering by hand, then there shouldn't be any major issues.
You could also consider placing some SMD components on the bottom side of the board. I usually put decoupling caps right underneath the power pins of a microcontroller, if I'm tight on board space. And both pads are connected directly by a few tiny vias that fit on the uC pad. Fabhouses usually have size limitations i.e. minimum supported drill hole diameter - see the fabhouse capabilities. Normally, they would offer a document with all details and tolerances described.
Since you have a double-sided board, you could try to route some short traces on the bottom side, if you're tight on space. Ideally, you'd choose slow switching signals like LED's. Faster lanes like SPI, I²C and the crystal clock should ideally be on the same side as the uC. If not, at least put a GND via (top GND plane to bottom GND plane connection) directly adjacent to the VIA where the signal trace penetrates the PCB to another layer. But then again, I'm already getting ahead of myself here and going into advanced/high-speed PCB routing.
-Far.