How can I modeling these case more efficiently?
Your way seems pretty sensible to me, but just in case this way introduces a couple of useful add-ons...




Delete the bottom front Ngon, and I inset the remaining front and top faces as a region, with 'Boundary' unchecked, to prevent a margin being formed at the mirror axis, or against the empty face.





Delete the inset faces





Having switched on 'Lengths' in the Property region > Mesh Display panel, take a note of the width the offset will have to be from the marked selected edges
Use the shipped Mesh:'Offset Edges' add-on > 'Extrude' to extrude the front edges back by that width, numerically entered.  
There may be some overlapping vertices on the new inner edges of the cluster of loops on the short rear-facing slope. Select the problematic range of vertices and use the shipped add-on 'Loop Tools' > 'Space' to make them regular. ( I went back to make those loops regular all the way round )





E Y the offset edges to the mirror axis, letting the 'Clip' of the mirror modifier do its work
F Fill the Ngon we removed in the first place
Ctrl V >  R remove doubles.


This may well be one of those places where a Boolean is a snappier way of doing it, as Mr Zak has commented .. I'm unreasonably resistant to using Booleans.