Worst FunC bug
SteveYesterday i forgot about one of the nastiest bug in FunC!

FunC has a impure function modifier. This modifier notifies FunC that this function is NOT pure. The problem is - you have to mark all functions as impure in your call stack to make it work. If you lost anywhere in between - this function could be stripped down. FunC automatically removes functions which return value does not used. This includes stripping functions that doesn't have a return type at all. This is a DEFAULT behaviour. If you miss something no warning or crash at all.
In Tact is is mitigated by marking all user-defined functions as impure. This leads to a problem that FunC can't perform this optimisation on most functions in Tact. Some of our low level functions are not marked as impure and this optimisation works. In practice i have seen very little improvement of stripping functions.