In case of a compiler, your cross platform argument is moot. Without virtually unlimited resources, you can't hope to become as cross platform as GCC or LLVM. Also, think about how long it would take to write a compiler, test it thoroughly on all platforms and document it.
The only reason you'd write your own is if you use a new or very exotic language.