Vengono chiamati due volte perché li chiami due volte.
if(scelta==1){
rettangolo(); //inutile!!
area=rettangolo();
cout<<"L'area del rettangolo e'uguale a "<<area<<".\n\n";
}
La prima chiamata a rettangolo() non serve perché il valore restituito viene perso, ti basta la seconda che salva il valore nella variabile area.