This should be done in the preinst instead. Rationale: update-alternatives is part of dpkg, so doesn't require any Pre-Depends; and a dependency (such as the gcc-arm-linux-gnueabi dependency on gcc-4.5-arm-linux-gnueabi) does not prevent one package from being unpacked before the postinst of another package it depends on has been run. So if you do this in the postinst, you get:

This patch removes all postinstall and prerm scripts used to set alternatives for cross toolchain packages. Additionally it adds preinst scripts which use update-alternatives to remove previously set alternatives for cross compiler.

Native build does not used postinst/prerm scripts at all and is not affected. Change will need to be done in gcc-4.[3-6] source packages as they are present in Debian 'sid'. gcc-4.1 is present in squeeze, gcc-4.2 only in lenny and I do not know should they be affected too or not.