Why for example field in wp_posts table is called “post_title” instead of “title”?
Is this somehow related to b2cafelog legacy code for backward capability?
Or is there other explanation for this?
This question applies to other core WordPress tables too.
You pretty much answered it – legacy code. WordPress is the result of years of code evolution, refactoring and (most importantly) multiple developers/coders/authors – whilst they’re getting pretty good at enforcing coding standards/consistency, there will always be a trail of the past.