According to the context3D docs you are limited to 200 opcodes per program, which is quite a lot – programs I’ve seen range from 3 to a few dozen. I can’t imagine writing one with 100, never mind 200, opcodes. I suspect long before you reached that size performance would become a limiting factor.
As for how to combine them, the main way is put each in a filter and chain filters in e.g. a CompositeFilter. This though has a lot of overhead. There is no efficient way - the nature of shaders is there is one program for vertices, one for pixels. If you want to run two or more programs you need to draw everything two or more times.
I would think the conditional jumps in AGAL 2 might help with this. Not only would they make it easier to write large programs, but could make them more efficient, by jumping over sections of code not needed for that vertex/pixel.