I briefly discussed this with C. Barton. I often I solidify and displace surfaces in the processes I work on -- recently for 3d printing custom assistance devices including molds for casting rubber, customized computer peripherals, etc. Whether or not they use clear-cut geometric forms, or are of organic nature, they often succumb to the issue of intersections with displace/solidify. I've wanted to work out some details on processes which would enhance these modifiers, but need some help. I'd attempt to implement it so it would be inactive normally, and use thresholds when enabled, so as not to slow down the normal modifier functionality, and a require a minimum processing when the features are used.
The main issue I'm having is that the modifiers do not presently have access to information on adjacent vertices, and my first approach to an algorithm would examine, with some function fn(vertex_normal, displacement_amount), if there would be a crossing (e.g. if faces would intersect). Then the simplest method would angle the normals away from each other. However, this does all require the ability to examine adjacency, and I'm relatively inexperienced in blender internals, having only contributed minor bits to sculpting tools and physics code. Your guidance would be appreciated.