Initially, Balduran admits he created an illusion of a dream visitor for us (for each infected companion in fact) that would be acceptable and not considered as a threat.
But then, in the final battle, if sided with Orpheus he actually summons several dream visitors to fight against as. And they are not illusions, even if mind-controlled by him.

Now, magic and other shenanigans are ok, but still BG3 world has some rules. And these rules doesn't allow illithids, even as powerful as Emperor, to create living creatures with full gear out of thin air. Especially when he admitted at least twice they were just an illusion. And no explanation, no nothing, only one of the companions comments something like "oh, so they are not an illusion??" and that's it.

I understand that Emperor took the place of a character referred to as "Daisy" in Early Access. Daisy came to each origin character as their own unique person (Vlaakith, Cazador, Mystra, etc.) and tempted them to take the tadpole powers. Therefore, it's likely that siding against the Absolute and facing your nightmares/beloved atop the Elder Brain was likely a big part of the climax from early in the development process. When Daisy was scrapped very late in development, and the Emperor put in their place with a drastically different motivation and storyline, Larian was still too married to the concept of a dream visitor and an epic confrontation with them.

However, I do not believe such absurd leftovers should be left in the game as is. I would suggest to fix it, by actually separating Emperor and Dream visitors. Instead of dream visitors being some illusions and also some unexplained abominations during the final battle, they should be warriors (and you should be able to customize one for your character) enslaved and kidnapped by Emperor, players should be able to romance them and free them along with Orpheus if players want.

Successfully freeing them should add dream visitors to other allies that we can summon on the battlefield during the final battle.