An idea I've had in the past is that surely there's a way to detect eye direction as looking at the screen and tweak the image on-the-fly so the eyes are looking directly at the camera instead.
The idea is so simple I'm assuming it's not as easy as it sounds, so I've never really tried it (plus I have close to 0 experience with machine learning algorithms)...
It was work done at Microsoft Research (https://www.microsoft.com/en-us/research/wp-content/uploads/...), but I don't think it was ever integrated into any products. Given our sensitivity to faces and eyes, I expect the result would be quite uncanny. Better to just side-step the problem by rendering sunglasses over the user's eyes.
Apple made 48 billion in profit on 229 billion in revenue in 2017. Granted, while Apple is the top smartphone seller and not all of their revenue/profit comes from the iphone, an Amazon bet that only loses 200 million this late in the game shows how much they underestimated the smartphone competition.
As phone companies are in an arms race to remove phone bezels, which would be motivation to make selfie cameras "behind" the screen or something of the sort, this might happen sooner than we think.
With current processing power it is possible to use either multiple cameras, or the X's face id sensors to manipulate the image to project the 2D live feed onto the 3D model of your face and slightly shift the 3D scene to make the image seem like it's making eye contact. I'm honestly surprised none of Google, Microsoft or Apple have this in their VC products yet.
Optically this is a problem, it would have to be some kind of "compound eye" system like an insect rather than a traditional set of apertures and lenses.
You'd also have problems with light bleeding from the display output into the camera.