Why does CentOS even with its latest release ship older versions of apps such as Python 2.6?
What is the reason and logic behind it?
Why the old versions?
The primary reasons are stability and compatibility. Remember with release such as RHEL and indirectly then through CentOS (which derives from RHEL), the primary requirement of users of these 2 distros is that the platform be supported for 7-10 years. In order to do this specific versions of software are essentially locked for very long periods of time.
Also many people make the mistake of thinking that the version of Python, Perl, etc. that's shipped with the distro is there for their use. When in actuality, these packages are really meant for the software that will run on these distros.
For example, all the system-config-* tools that are provided for managing a CentOS system make use of Python. To be specific, they all use the version of Python that's included as a package on the system.
Maintaining your own
If you're an application developer, and you have additional requirements as part of your application, that stipulate you need version X of Python, Perl or whatever. Then you should take the time to manage that as your own requirement, rather than depend on the OS to provide it for you.
There are tools for managing your own versions of these interpreters. Take a look at this U&L Q&A titled: Recommended Linux distribution for statistics? where I cover the various tools for managing your own versions of Python, Perl, & Ruby interpreters.