How about performance issues and silent errors? Finding areas that need to me optimized because a lot of users have subtle issues kinda needs passive data collection.
As long as it is anonymous, it's a good thing, IMO.
Yup. A previous company I worked at used assert calls in the code. In a debug build of the firmware, if an assert failed, it would crash the device and on the display it would show the file and line number of the assert call. In production firmware, it would silently ignore it, and if you had opted in to sending usage data, it would phone home and report the failed assert, though I don't know what extra data was included.