This is the problem with sandboxes and app stores. People are trained (by Apple) to think that their devices are safe from spyware, malware, viruses and malicious app activity in general. This is not the case.
Uber was tracking people before and after journeys & tracking IEMI numbers, Path was and Foursquare is uploading a user's entire address book and contacts to their servers, and the Chinese App Store was infected with malware through Xcode - including apps like WeChat and Angry Birds 2.
Apple creates a false perception that any app on the App Store is safe, while allowing apps to ask for permissions (or permission levels) that are entirely unnecessary for the app to function.
Nothing is 100% safe. It all depends on the level of safety measures taken.
This camera "problem" is as old as the first webcam ever invented. Sure, Apple could add a visual indicator when the camera is active, but then someone will say that the microphone can do the same, and suddenly the phone and top bar will be filled with lights and indicators.
The one AppStore concept helps a lot in preventing malware, but with the thousands of apps flowing, it's impossible to detect all of it. So blaming the AppStore and Sandboxes makes no sense at all.
The most practical way to combat that is with the membership program and member verification, and penalizing those developers who break the rules or get involved in unethical practices.
The malware incident was caused by some dumb developers downloading infected Xcode from a third-party site instead of downloading it from Apple. That was their mistake. It's almost impossible to detect this type of malware unless it has already been discovered. Otherwise Apple would need to sit and read every line of code inside each app being submitted.