When something goes wrong in technology, knowing who to blame is a surprisingly difficult problem. Despite having dealt with thousands of bug reports for over 1...
The relevant parts of this post are the parts about making tradeoffs (making different choices would have a separate set of issues), how all software will face similar issues (you could ask similar questions of any software out there facing any issues), and the fact sometimes there is no easy or quick solution.