Not sure what's wrong with the clause. It's a loan deal and as per the standard loan deals in PL, player isn't allowed to play against his parent club. At least Atletico have the chance to field him with this clause.
Adebayor didn't play against City
Lukaku didn't play against Chelsea for 2 years and there are many loan deals. This just happened to be at CL semi finals.
Also Madrid allowed Sahin to play for Dortmund as he is more or less Dortmund player with fixed fee and all that and they want him out anyways. Maybe when Dortmund signed him they put in a clause to make him play against anyone as Madrid wanted to sell him and there weren't many interested or Sahin was not interested in any.