I would think it should be reliable but for encoding changes (enabling/disabling BOM, choosing another encoding to save the file, etc.), which although relevant are a lot less common.
Those don't affect the buffer, so they shouldn't affect the `changed` flag should they?