Why WordPress Core Functions Not Using function_exists()?

Some do, a number of core functions is specifically designated pluggable and contained in pluggable.php for exactly this purpose.

It is also quite a messy approach and is often regretted it’s a thing at all.

The problems are loosely:

  • the replacement works exactly once;
  • letting extensions mess with core definitions can lead to very volatile results.

The problem with letting developers modify core files is often not how to allow this, but how to make it unnecessary. The latter is much more reasonable approach and basis for WP’s strong extensibility and success of its hooks API.