Our general rule is one question per post. I answer the first question.
A program can certainly produce infinite output. It can enter an endless loop that produces an output. Consider the first program of all in Basic:
10 PRINT "Hello World!" 20 GOTO 10
There is no point in saying that a program is predictable. You do not have to write a program to output a program. Instead, you can simply write the program you want. Instead of talking about predictable programs, predictability is about languages. We speak of predictable languages. Check the definition of predictability.