Even though the lit object queries would be made per light, you can still build the per-object light lists from those, and don't necessarily have to make the directional lights a special case, if you do for example the following:
- Render the "first pass" for all opaque objects: use replace blend mode + render ambient&emissive + the first n lights from the object's light list, whatever your shaders can handle
- For opaque objects whose all lights were still not rendered: switch to additive blend mode + render rest of the lights, Repeat until light lists for all opaque objects have been exhausted
- Transparent objects need to be rendered in back-to-front order, interleaving the first & additive passes
(ie. most distant object first pass, most distant object additive pass (if needed), second most distant object first pass...)
Note that in forward rendering you always have to sample the object's material textures again in each lit pass, your description above sounds like the lit passes would not sample material textures anymore, which sounds more like deferred rendering.