Well, opt outs only favor the player and hurt the team so I'm not sure why you wouldn't give him or any player no opt out. No trade clauses are pretty standard for star players so that's not an issue.
Harper is a former MVP and a top 10 or 15 player. Hell, he had a down year last year and still was 16th in OPS (by far the most important hitting stat imo). And playing 81 games at citizens bank park where his career numbers are very very good should help him even more.
This was a smart deal and Harper took a little bit of a per year discount.