Your question: "Is it moral?", can be asked about the conduct and the person. As you describe the case, the conduct is moral (i.e., morally above reproach), but the person arguably is not because he has no concern for the rights, needs and interests of other people. What does it matter, you ask, if the results are the same? Just think about living with someone who genuinely cares about you versus with someone who behaves the same way out of fear that, if she is not nice to you, she will be punished by losing out on the benefits of your mother's fortune. Or think about a whole world in which any consideration people show one another is motivated solely by a selfish concern over rewards and punishments. The value of human civilization cannot lie exclusively in right conduct -- robots could be programmed to produce that more reliably than human beings -- it must lie, in large part at least, in the nobility of human motivations.
Read another response by Thomas Pogge
Is it moral to behave only in terms of fearing punishment? For example, suppose the only reason a person has for not behaving immorally is the fear of divine punishment. Since his actions yield the same results as another non-immoral person who has no fear of divine punishment, why does it matter what reasons give the same results?