Anyway, if you can program your ALG and fix any problem one might have, why isn't it a better choice?
This depends on wether you have control or not. As a service provider we have to deal with hundreds of different NATs/Routers all over the world. We do not have the luxury of demanding users to buy a certain NAT device (and some NATs are even embedded in the modem provided by their ISPs). On the other hand we do suggest our users get one of our "supported" UAs which have been heavily tested by us. That being said, our number #1 issue right now are broken SIP Aware NATs all over the world. We are constatly having to move these users to other ports besides 5060. I wish NAT vendors would give up on this idea. We prefer to solve this by a combination of STUN/RTPProxy which has worked flawlessly for us.
Secondly, I don't share your optimism on that ALG
vendors will get the application logic right.
I agree...please stop this futile attempt! (I can understand a handful of vendors are smart enough to get this right, but for sure it is impossible for most to do it)
Field experience shows that my pesimistic attitude is quite realistic. There were even bizzar products that claimed support for SIP but actually mangled it in a way which broke