Some Unix history resources say that cd was external command at a some (quite early) period of Unix development. This was a special command which was able to modify parent's current directory.
You can see rudiments of this historical state in the fact that Solaris has /usr/bin/cd as a real command, in addition to shell builtins. But I'm unsure it does anything real in the current systems.
This being as external command was a temporary solution which was exterminated as soon as Unix developers became able to have shell builtins. It's too expensive to have a whole command (which shall have own process, be loaded from disk, etc.) in the place where simple system call is enough. So it became a builtin and, since this, didn't changed its state ever.
One could create a shell where nearly any command becomes built in; this is only a kind of design trade-off. For instance, cp mentioned here could be good candidate for this; and such building-in had been implemented in some shells for MS-DOS. But, in Unix, process creation and start is cheaper, and there is no need to invent a functionally internally unless it couldn't be implemented from another process. This includes cd, ulimit, exit, variable manipulations, control flow commands (if, for, while, etc.) and so forth.
type cd– Rahul Patil Dec 22 '12 at 05:53