Just wondering if this could be put forward as a feature request for the Particle system?
A weightmap emitter working like a mesh emitter, getting colour information from the surface of the mesh, but only emitting via the weightmap? Maybe an add-on to the mesh emitter?