I tried it in IE9 and it has the same behavior as Chrome.
I don't think it's a bug.
Using .val(value) on an HTML element will reset the "manually changed" flag and thus no change event will occur (because the user doesn't change anything manually AFTER the val() operation).