I have world, that have apps, that can be only merged with some gcc version (only 4.5.* or 4.6.*).
How to automatically switch gcc when I rebuild word? Why there is no integrated portage functions to this?
And what gcc version I must use for whole system: 4.5.* or 4.6.*? All 4.5.* compiled apps i can work with 4.6.* compiled libs and all 4.6.* compiled apps i can work with 4.5.* compiled libs or not?

Switching gcc during an ebuild is dangerous. You could cause problems if you switch it in the middle of a separate ebuild's compilation phase. I assume there is no integrated functionality for this because it is a bad idea. The only reasons to use anything other than the latest gcc is if the program in question is rejected due to improved strictness in the latest gcc or if the latest gcc miscompiles the program. If increased strictness is a problem, the program should be fixed. If gcc miscompiles the program, then either the program should be changed (if the source is non-conforming) or gcc should be fixed (if it is a gcc bug).