- In your example there's no guarantee that the length will be accurate, or that the data hasn't been modified independently elsewhere in the program.
- In other words you've created a fantastic shoe-gun. One update line missed (either length or data, or data re-used outside the struct) and your "simple" struct is a huge headache, including potential security vulnerabilities.
- Re-implementing a common error prone thing is exactly what language improvements should target.