Custom stages often are riddled with variations that no default stages can replicate. It's my theory that these default stages, relatively "simple", (battlefield for example) mainly require a direct movement pattern, because there are generally no barriers which prevent this.
Now, say you throw in a few traps, walls, precarious platforms, etc. This obviously leads to CPUs going for predictable routes to circumvent said barriers and ultimately falling into the errors that are the topic of this thread. For instance, each character, at each CPU level, is programmed, presumedly, with one primary method of recovery (i.e., DI toward stage, 2nd jump, up-b, and so on). Of course, there are frequently different variations because the CPU will not always be at the same coordinates. If a string of programming is activated when closer to a platform, say on SmashVille, their closer route coding will be activated and they may only have to 2nd jump and so on.
In other words, AI can only make the most logical choices WITHIN the amount of programming that has been given them. If a CPU is seeking to climb a ladder to reach a higher point on the map where the brawl is taking place, and he is standing on a separate platform from that where the ladder begins, he will jump from platform A to platform B regardless of whether or not a block is positioned above its head, effectively blocking the jump and preventing the CPU from ever reaching platform B.
Basically, if a direct route of getting from one point to another SEEMS to exist, the CPU will choose that option even if an indirect path is more logical in human eyes.