From a mechanics point of view I think it wouldn't be too difficult to go in and have the companions setup with "preferences" rather than making them iron clad "must haves".
For example if Sera prefers female companionship then you'd only need to get to X amount of approval points to get her attention as a female character, but if your a male the option still exists - you just need more approval points to get there.
If Blackwell prefers elves or humans, well then X points and you can get his attention. But you'd need more to get him interested if your a Dwarf, for example. You could add in extra steps and more dialogue for the non-preferred characters, overcoming objections or even additional quests to complete.
You can vary these points as much as you'd like and even include things like character class to even make it more interesting. Cassandra would have a much easier time being romanced by a human fighter, for example, than she would an elf mage. That's not to say she can't fall for an elf mage, but it would take a lot more on his part to rise high enough in her esteem.
I do have to applaud the makers of the game though for including this, and three big thumbs up to however did the dialogue between Dorian and Iron Bull. I'm out wandering around, on my way to bust another rift - when Iron Bull starts hitting on Dorian. Came completely out of left field, caught me totally by surprise.
I literally had to pause the game I was laughing so hard. Priceless.