Can bones be moved by vertices?
Yes. This is possible using bone constraints, but it is very annoying to setup, and tedious to use. You can create vertex groups of the target vertices, and use bone constraints (in pose mode) to have the bones follow them. The usual practice is to have one vertex group at the root of the bone using copy rotation/location/transform or child of constraint. And then use IK or stretch to to have the tip of the bone track the vertices that will move.

The limitation of this is that once the bones are constrained, you can no longer pose them. The work around for this is a second layer of bones that are children of the constrained bones. Have this second layer actually affect the mesh, as you will still be able to pose them. (Note that this only works with certain constraint setups.)

However, it seems like the better way to handle your current situation would be to use another layer of bones that you scale instead of using shapekeys. Then you can easily have your deform bones be children of these scale bones.