These are some complicated answers. I will try and be short.
Imagine Redux is a grocery store. You made the store and know what is inside of it. You yourself can not go inside but can send someone in to get things for you (actions).
The reason you can't go in is you might mess something up while you are there and you might blame someone else for your actions. This is why you send someone else to fetch and return (dispatch) your goods. If they mess something up then you know what action made the mistake.
This is how I would explain it. The store is immutable because you cannot go in yourself. The actions go in and dispatch your info back to you. You have better debugging from this because you can track mistakes made by your actions.