Robert,
I have personally tested the ELP AF cameras focal distance to be controllable over USB. It requires calls to a UVC library and I've begun development of a driver that can do this. It's mostly working but very crashy at the moment, and needs some work done to finish building all the required artifacts for each platform. This code is at:
The OpenPnP camera system was designed from the start to support focal distance changes either by moving the camera in Z or by adjusting the focal length. The Z option is simple and obvious. For the focal distance option this would be implemented by the Camera class watching the Z position and setting the focal distance to that multiplied by some modifier, or by using a lookup table.
With this all being said, so far I have not found fixed focus on the top camera to be much of a burden, as long as everything on the table is kept within about 10mm. All of the vision algorithms are built with a little bit of compliance in their sizes to handle this. I do think, though, that as we get into more advanced things like random, loose, part picking this will become more of a concern.
Jason