Obviously, it would have been really nice if something like the assembler had caught it with some simple sanity-test (ie I think the .size thing would be a good sanity check _regardless_), so in that sense it's our bug that might have been avoided with soem sanity testing, but on the other hand, I can well understand that gas didn't do it - since it would matter only for totally buggy code that was never emitted by the compiler.
Gas historically used to not do any sanity-checking what-so-ever, and was very much meant to be just for compiler output (which is why #APP exists in the first place - to mark places that aren't pure compiler input). It's actually improved immensely in that area and now is useful as a traditional human-usable assembler with lots of support like macros etc.