backside selected only by border select and lasso, but not mouse click
This is the basic idea : we keep the occluding OFF but switch it ON only when selecting with mouse click, and for this you create your own operator for selection and replace the shortcuts to point to this new operator.( or simply override the old operator )

Here is the code that does that run it then set the shortcuts

import bpy
from bpy.props import BoolProperty, IntVectorProperty

class SelectionOperator(bpy.types.Operator):
    """ Costum selection
    """
    bl_idname = "view3d.select_costum" #to override the old selection replace this with "view3d.select"
    bl_label = "costum selection"

    extend = BoolProperty(default = False)
    deselect = BoolProperty(default = False)
    toggle = BoolProperty(default = False)
    center = BoolProperty(default = False)
    enumerate = BoolProperty(default = False)
    object = BoolProperty(default = False)
    location = IntVectorProperty(default = (0,0),subtype ='XYZ', size = 2)

    def execute(self, context):
        context.space_data.use_occlude_geometry = True
        bpy.ops.view3d.select(extend=self.extend, deselect=self.deselect, toggle=self.toggle, center=self.center, enumerate=self.enumerate, object=self.object, location=(self.location[0] , self.location[1] ))
        context.space_data.use_occlude_geometry = False    
        return {'FINISHED'}

    def invoke(self, context, event):
        if context.space_data.type == 'VIEW_3D':
            self.location[0] = event.mouse_region_x
            self.location[1]  = event.mouse_region_y
            return self.execute(context)
        else:
                self.report({'WARNING'}, "Active space must be a View3d")
                return {'CANCELLED'}

bpy.utils.register_class(SelectionOperator)


if you didn't override the old selection you have to change the shortcuts :


hit Ctrl+Alt+U
in Input➝3D view➝3D view Global➝Activate/Select
change the operator to view3d.select_costum
repeat for all the Activate/Select entries below this one