One potential issue is that unlike most other languages, it doesn't create a new scope. But almost nothing in Mathematica introduces a new scope, and Python also uses unscoped "if"s, so it's rarely much of a problem in practice.
But with pattern matching, you almost never need to use "If[]" anyways:
But with pattern matching, you almost never need to use "If[]" anyways: