Halvány lilám sincs, hogy ez a fordító sajátossága-e vagy sem, de gyaníthatóan szabványban rögzített.
Sem 'b', sem 'c' a döntő. Abból adódik a félreértés, hogy az
a = b + c
végrehajtási sorrendje más, mint azt elsőre gondolná az ember. b és c összeadódik, majd az eredmény bekerül 'a' változóba.
A kényszerkonverzió (cast) a megoldás erre, ahogy írtad is. Itt:
Bővebben: Link #9 -es hozzászólás.