Is it true that there's no escaping a little bit messy geometry in the part you connect last?
I've tried your mouse, it's not exactly the G600 shape but I think the method is good. Unfortunately I lost all the screenshots I made, but here are the basic steps. For this kind of object you should begin by modeling the whole shape, then duplicate it and use a Shrinkwrap modifier to continue to stick to this shape:


Use the pictures you find as backgrounds for Front (or Back), Top and Left (or Right) views.
Use all these views to model the general shape of the object.
Keep the model simple (picture 1), give it a Subdivision Surface modifier to smooth it. Let's call this object A.
Duplicate this object to create a copy called object B. Don't move this copy so that it keeps the same position as object A, but put it on another layer to make invisible.
Give the object A a Shrinkwrap modifier that you put above the Subdivision Surface modifier, choose object B as the Target of the Shrinkwrap.
Select all the vertex of your object A, assign them to a 
vertex group, select this group in the Shrinkwrap modifier, so that they will be the ones that will be affected by the Shrinkwrap.
Add some edge loops on your object A, begin to draw all the additional shapes with a knife. Make sure that the new vertices are part of the vertex group. As the object has a Shrinkwrap modifier, the new topology you create stick to the right shape.
Begin to extrude where you need to dig some holes. This time, make sure that the extruded vertices are not part of the vertex group, otherwise they would stick to the surface.
The tricky part is all around the square cuts, you can use the kind of topology I've used (picture 3), fortunately the Shrinkwrap make it easier to keep a correct shape.
Note that you can choose sometimes to apply the Shrinkwrap so that the vertices of object A always stick as much as possible to the shape of object B. Then recreate the exact same Shrinkwrap as before.