Using Ethernet.begin(mac, ip) if/when Ethernet.begin(mac) fails

The problem is that when DHCP is not working and my code enters the if statement (which it will, after a few seconds, verified) the Ethernet.begin(mac, ip) won't work for some reason.

What do you mean by "enters the if statement"? An if statement doesn't have an entry point.

An if statement is evaluated. The result is either true or false. If true, the body of the if statement is executed.

So, just what DOES happen?

And, how do you KNOW?