Общие ограничения не принимаются как часть сопоставления перегрузки. Это то же самое, что и тип возвращаемого значения.
Например, это приведет к одной и той же ошибке (перегрузки отличаются только типом возврата):
public static int Do<T>(T obj) { }
public static bool Do<T>(T obj) { }
В обоих этих случаях правила сопоставления перегрузки учитывают только типы параметров, игнорируя дополнительную информацию, такую как ограничения и тип возврата.