GNU as documentation states that a .thumb_func directive implies .thumb, teach the asm parser to switch mode whenever it's encountered. On the other hand the labeled form, exclusive to Apple's toolchain, doesn't switch mode at all.
Could I trouble you to add a test case for something like:
.text .arm .thumb_func nop sym: bx lr
This just makes sure we get the nop before sym in Thumb state even though the symbol doesn't start immediately after the thumb_func.