In the introduction it says that Kira is better than Leo or Andrei, and asks which of Andrei or Leo is better. It says Ayn Rand prefers Leo, and that she thinks Leo would be like Francisco D'Anconia if he lived in the USA instead of in Russia.
I disagree. I prefer Andrei. Let's start with Leo: Leo has already largely given up when the book starts, and he gets worse as the book continues. I don't see that Leo did anything impressive in the entire book. I'd note that Kira is attracted to him due to his appearance. Admittedly, in Rand's worlds appearance is a direct indicator of character including heroism, so perhaps when she described his appearance she intended to be telling the reader that he was just like Francisco. But I prefer to judge people by their thoughts and actions, and while Leo is a decent guy sometimes, he never does anything heroic. The closest he comes is buying passage on the boat to try to escape from Russia.
Andrei improves as the book progresses. He learns things. I would say he is the only character in the book who learns much of anything good (some characters learn how to talk like a loyal communist, or other mundane skills). Kira was evidently born heroic. As good as she is, she already had all her merit when the book starts; I think Rand sees having to change as a bit of a weakness, rather than seeing learning as a strength.
My favorite part of WTL is when Kira confesses to Andrei that she slept with him to get money for Leo's medical treatment and that she didn't love him. In particular I like Andrei's reaction. He does not get angry. He does not whine about how his lover betrayed him, and his heart is broken, and all the stuff nearly everyone would say. That alone is wonderful. But Andrei does considerably better than that. He reacts by stopping to think. He doesn't say anything except "I didn't know" until he's thought about it. He's calm and collected even as Kira continues her mean rant. That's great too. But then the really amazing thing is that within minutes of finding all this out, and with Kira fully unapologetic, he has not only forgiven her, but praised her for doing it, said he would have done the same thing, and said it vastly raised his opinion of her. When he found out she was living and sleeping with Leo, what bothered him was not the betrayal but that the best explanation he could think of involved her being a bad person.
Sidenote: Why would that indicate to Andrei that Kira is a bad person? Andrei considers Leo a bad person, so why would Kira want to be involved with him? And also, why would Kira want Andrei's money? Why would she want to take advantage of him? Is she just a whore and a sort of thief? That is incompatible with being heroic.
So when Andrei finds out the truth, that Kira had good reasons, he realizes she was in fact a better person than he'd ever known. She did something very hard, but also important. She epitomizes the heroic values he liked about her even more for doing it. And Andrei recognizes all this right away and is glad about it. That is in many ways even harder than what Kira did. Think about it. A lot of people could lead a double life if they were motivated enough. Nothing about it is really too complicated. But what Andrei did, staying calm and reacting to emotional news in a rational way, most people couldn't even begin to do that. They have no idea how to do it, or even how to start learning to do it.
To sum up: Andrei has this very exceptional moment, and he is the character who learns and improves over the course of the book. That's why I prefer him to Leo. By contrast, Leo lets his life get worse and worse until he gives up and no longer wants to try or think.
The worst thing about Andrei was his suicide. He could have remained friends with Kira, and looked for ways to turn his life around, such as going abroad (even without Kira), or helping anti-communist resistance. Note that if he'd been alive longer, he would have been around when Leo left and Kira decided to escape, and she would have accepted his offer to escape together at that point.
Leo has a lot of serious flaws. He despairs, he doesn't want to think, he wastes money, he turns to crime knowing he's putting his life at serious risk, he doesn't value his life, he befriends bad people, and he mistreats Kira. Leo has a different reaction than Andrei when he finds out about Kira's double life. Andrei reacts heroically. Leo reacts despicably. Leo thinks worse of Kira, and then says he's glad for her to be worse. The worse a person Kira is, the better, is Leo's view. He doesn't want there to be any good in the world, so when he turns his back on good he's less guilty. That's just terrible.
On to Kira. She fails to improve things, but she never gives up, so it's alright. Actually Kira does improve her life in one major way. She forms a relationship with Andrei, and then helps him improve. The more he improves, the better a friend she has in her life. Unfortunately she doesn't recognize this. By the way, I think she should accepted Andrei's offer to go abroad. It would have improved her life! She only stayed for Leo. Self-sacrifice is bad. I know she wanted Leo in her life for her own sake, but he wasn't making her life wonderful, and she should have noticed that and taken the superior opportunity. Note that it would have quite possibly saved both her own life and Andrei's life.
One of the great parts about Kira is the stuff she doesn't notice. Near the beginning of the book her family complains about their poor clothes and poor food. Kira comments that she hadn't noticed. Kira does not think of hardships just like when Roark comments that he doesn't think about Toohey. Kira instead focusses on pursuing her goals and living her life, which is great.
I like Kira's escape attempt because it was her pursuing her values. I like her interest in engineering. I like how she insists on living life her own way. For example, she enrolls in engineering classes against her family's wishes, and she goes to live with Leo even though her family will disown her for it (they forgive her when they are hungry and she has more money than them). By the way, I also like Vasili Ivanovitch, the relative who sells all his possessions but refuses to get a Soviet job.
Kira demonstrates her strength and perseverance by her escape attempt, by maintaining her double life, by never giving up, and by making a great effort to get and keep a job, to wait in all the lines, and so on. Those are the things she has to do to continue her life, so she does them, and she doesn't complain incessantly or turn her mind off or let it destroy her spirit, she just does it and keeps living like a full person, almost like a free person. She also demonstrates it strikingly when Leo leaves. She chooses not to tell him why she slept with Andrei, or where the money for his medicine really came from. A lot of people would be angry with Leo and tell him out of spite. A lot of people would tell him and say it was the truth as an excuse. A lot of people would tell him without even thinking about it first. But Kira is better than that. She judges that Leo is lost to her, so there is no point in telling him. She further judges that Leo does not want to know. Not telling people things they don't want to be told is a good policy. It's respectful of their life; it's living by consent.
Kira stands up to the communists at times. Not in a sacrificial or suicidal way like Sasha (Irina's boyfriend; they are sent to separate camps in Siberia), but only by way of expressing her values and living in the way she wants to. That is nice. Sasha gives up his life for a cause. Kira values her life more than he does. She doesn't want to be a martyr. In one scene Kira considers sacrificing herself to do a good deed. She's in a communist march/parade, and some foreigners are visiting to see Soviet propaganda, and she could run up to them and tell them the truth about Russia. But she thinks of her life with Leo, and doesn't want to give that up, and she puts that ahead of communicating this important truth which has the potential to save every oppressed Russian. Good for her.