Computer algebra issues

Some students have encountered interesting issues with Mathematica. Here something about

1) Machine accuracy: (Homework 13, Problem 1)
A=N[(10^10+7)^(0.2),30];B=N[100+7*1/(5*100^4),30]; N[A-B,30]
The first gives a difference of 10-14, the second 10-18. Nothing seems to help, SetPrecision, SetAccuracy, , MaxExtraPrecision, . For example:
SetAccuracy[(10^10+7)^(0.2) - (100+7*1/(5*100^4)),60] 
SetAccuracy[(10^10+7)^(1/5) - (100+7*1/(5*100^4)),60]
2) Some interesting simplification issues in Mathematica. This appeared in Homework 12, problem 5. This code works:
f[t_,x_]:=(1/t)^(3/2)*x*Exp[-(x^2)/(4 t)]/((1/t)^(1/2)*Exp[-x^2/(4 t)]+1);
and the next few lines do not work:
f[t_,x_]:=(1/t^(3/2))*x*Exp[-(x^2)/(4 t)]/((1/t)^(1/2)*Exp[-x^2/(4 t)]+1);
The only change is that (1/t)^(3/2)* is replaced by (1/t^(3/2)). Drilling down, one can see that the following expressions are not simplified:
Sqrt[1/t] == 1/Sqrt[t] 
Sqrt[t^3] == Sqrt[t]^3 
Sqrt[1/t^2] == 1/Sqrt[t^2] 
t^(a*b) == (t^a)^b  
Sqrt[t^2] == t
The following expressions are simplified and give the value true:
Sqrt[Abs[1/t]] == 1/Sqrt[Abs[t]] 
t^(3/2) == Sqrt[t]^3
2.5^(a*b) == (2.5^a)^b    
What happens is that Mathematica wants to avoid the issue of having a negative argument under the square root.