this may be by design, i'd think work around you could also try (not sure how you export atm) exporting to single lights than merging them after?
did you try classifying alt with calling a variable there instead of integer?
It would be odd if it is by design, as the height was the only value in the command line it grouped across separate output lights. Other unique values in the same command lines were correctly applied to each output light. Sorry, don't understand your comment about exporting and merging. I tried your suggestion of calling a separate variable for each height value, rather than using an explicit integer value in the CreateAF2Light command line. But it did the same thing and just used the variable value for the last line for each light output, rather than the variable assigned to each light output. In the example below all lights ended up with a height of 400.
AddAttribute|man_made="tower" And name="*TV*" |Integer;height1|100
AddAttribute|man_made="tower" And name="*TV*" |Integer;height2|200
AddAttribute|man_made="tower" And name="*TV*" |Integer;height3|300
AddAttribute|man_made="tower" And name="*TV*" |Integer;height4|400
CreateAF2Light|man_made="tower" And name="*TV*" |1.0;0.0;0.0|5000|0;0;1|height1
CreateAF2Light|man_made="tower" And name="*TV*" |1.0;0.0;0.0|5000|2.8;0.0;30|height2
CreateAF2Light|man_made="tower" And name="*TV*" |1.0;0.0;0.0|5000|0;0;1|height3
CreateAF2Light|man_made="tower" And name="*TV*" |1.0;0.0;0.0|5000|2.8;0.0;30|height4