newt - please don't needlessly start a flamewar in a bug report. The specific words people use isn't really important as long as they convey the bug report clearly.
— - the main issue with changing this is it seems likely this would break existing projects in weird and subtle ways. If someone's game breaks due to the rounding direction changing, it will probably be a nightmare to figure out the chain of consequences. The int expression primarily exists for converting strings to ints, but does also floor a float it's passed to make sure it always returns a whole number. This probably should not actually be done at all, since neither C2 nor Javascript actually have a formal integer type. It's mostly just a thoughtless carry-over from Construct Classic that shouldn't really have been added. On the other hand if you actually intend to round a float I guess you'd either use floor(), ceil() or round().
Another issue is val | 0 truncates to a signed 32-bit integer, whereas normal JS floats have 53-bit integer precision, as per the precision of a double. So actual integer truncation would probably also break projects using the expression on very large numbers. (Some people like super-mega-high scores )
So I think there's too much to lose vs. not much to gain here, so I'd probably just file this under "weird quirks of C2". Maybe for C3 I should just deprecate the expression and add a separate StrToInt() expression or something like that?