Если API меняется, вам следует перекомпилировать, даже если вам не нужно вносить какие-либо изменения в ваш исходный код. Если API не изменился, вам не нужно перекомпилировать.
Причина, по которой «даже если вам не нужно вносить какие-либо изменения», заключается в том, что некоторые исходно-совместимые изменения могут быть двоично-совместимыми. Например, предположим, что вы сейчас звоните:
public void foo(String x)
и в более поздней версии это изменяется на:
public void foo(Object x)
Очевидно, что ваш код все равно будет компилироваться, но метод, который разрешает вызов, изменится.
Это, конечно, крайний случай. В принципе, если вы знаете, когда API меняется, у вас все будет в порядке.