I still don't understand why Apple is discouraged by the old animation method and instead says that blocks should be used.
Apple wants you to use the latest and greatest methods. Apple is optimizing all new iOS releases for block-based animations and is likely to add new features only for block-based animations. That's why Apple is pushing you for block-based animations.
I mean, how can you really stop using the old way? Is it just iOS> 4.0 blocks?
Yes, only iOS blocks> 4.0. Therefore, if your application is designed for iOS 4.0+, you can use block-based animation. Or you can check for blocks and add specific animations only for iOS 4.0+ devices.
Completely stop animating the old way realistically if you abandon iOS 3 support.
Is it supposed to fill in the ifs code and make two different implementations based on the current version of the device system? And why so, because the old method works fine? In addition, the base implementation should be the same, right? Are there any considerations behind this, other than the fact that begin / commit produces ugly code?
Well, if the old method is suitable for you, and you want to support older (iOS 3) devices. Just use the old animation method. There is nothing wrong with this; do not put unnecessary if-statements in your code. This only complicates the situation, and you do not gain anything by doing this.
If your iOS 4 application comes with blocks, it is shorter and somewhat cleaned up. It should also be easier to maintain, because Apple will not update the old way of animation.
(You can always add if-statements somewhere in the future if there are animations that you can only do with blocks, and then return to another less complex animation with old methods. But this is something in the future.)