Bone weights with subsurface modifier
There is no may of getting exactly the same effect, as you can only set weights on 'real' vertices, not the extra ones generated by subsurf, which just get interpolated. Automatic weights are just an easy way of setting the weights, it doesn't do anything that you couldn't theoretically do manually.

That said, when making characters, the subsurf modifier is generally placed below the armature modifier in the stack. This way the deformation with or without subsurf will be much the same as with subsurf, and subsurf is just used for smoothing and to support extra detail through displacement mapping. This is also important from a performance perspective, as the number of vertices can have a big effect on armature modifier performance.

Your base mesh, prior to subdivision, will need to have enough geometry to deform properly, which can mean adding extra loops around joints, but some experimentation is often required. In your case it looks like when you have added extra loops, they are too close to the joint.