actually if you arrange a betrothal with another noble on your son's behalf and then land him, he'll still stick to the deal and marry when both are 16+. Do keep in mind that that the betrothal deal only keeps the NPC locked from marriage until both sides are 16+ and at that moment one side still needs to convince the other, so if you're already pushing the envelope to convince that queen to marry your son in a regular marriage, your son may not be able to secure the deal when the time comes if he's not as good as diplomat as you. Also if the wife-to-be dies he's then free to marry whatever commoner he chooses.
Overall, if the stakes are high you might wanna hold off on landing your heir. For example, in my current game I got my heir betrothed to the infant queen of Leon (with Galicia and Portucale in her realm) and even tough I really need to drop a duchy from my demesne because of penalties, I'm holding it off till the marriage is done since I have a better chance of keeping her to her word when the time comes. If you're an emperor, your sons is going to be a king till youre dead and you want him to marry a daughter of a baron, you can safely go ahead and land him. If she dies, just load as your heir (or charinfo 1 --> play *character ID* on console) and choose your heir's wife, if you consider that cheating you really need to get your priorities straight.
As the the OP's question, I rarely marry my heir for alliances, or rather, that comes third in my list of priorities. Firstly I look for wives who are actually preety (for this reason I only look at 16+). It may seem shallow but if I'll be playing the offspring of that couple in the future, I want the kids to look at least decent in the portrait. Second, I look for positive genetic traits, which are always good to add to your bloodline as a genius king makes for a stable game. Lastly, I may look at the alliance gained as a tie braker. Now as for my other sons and daughters, those are my alliance makers and are usually betrothed at age 0.