To many variations and applications to try and solve with one lisp program.
You are right its a case of not one lisp but rather a series of functions that draw the required output. My house package has around 104 lisp's it it gets options added as required.
Most footings have a common theme single strip L T etc so the approach is ask questions and draw the answer. In your image you need also the reinforcement to be added.
I appreciate your designs vary but again can be broken down into similar objects. The other way is to use dynamic blocks.
Moshe-a I have attached my multival dcl it creates a dcl on the fly with as many lines as you want, its called via 2 lines of code. I like the variable names makes it easier to see whats going on, like you I use default values. Here is this project add or remove required input 8 7 is input characters, ans is a list of strings of the returned values. Use nth etc.
(if (not AH:getvalsm)(load "Multi Getvals.lsp"))
(setq ans (AH:getvalsm (list "Double beam edge" "Enter length" 8 7 "1000" "Enter slab thickness" 8 7 "100" "Beam depth" 8 7 "330" "Beam width" 8 7 "300")))
The other thing I would have added was the dimensions already mentioned the reo missing.
Could be expanded to edgebeam1 edgebeam 2 being different pretty quick.
Lastly to dc-mwa if your happy to post some images or pdfs happy to look at whats involved in automating them. Private message etc.