Kuba,
The problem of delaying the evaluation of ffoutsuper till after eqnlist has been generated has been already solved by Eric. The problem of giving ffoutsuper a flat list and reconstructing the actual lists inside of ffoutsuper (so they can be passed on to other functions) has also been already solved by Eric, so thanks but I don’t need that anymore. However, I was wrong to think that this would solve my problem. I thought it would, because when I gave ffoutsuper a flat list and delayed the evaluation of eqnlist with the “Real” hack (imposing that its args be real numbers instead of symbolic or otherwise), everything worked. But now I am thinking that the “Real” hack must have had other effects that made things work (but it doesn’t work with lists, at least as far as Derivative is concerned, which is a BUG. See this thread: Pattern matching doesn't work as expected? and Ginalucca’s response:"
Very curious. It appears that you cannot mix numeric tests like x_Real or x_?NumberQ with list structures inside Derivative")
So the problem in its most general form is to have the same code that worked without lists, work with lists (of different shapes and sizes).