People know what they need to spend their money on. Telling them what they can and can't do with it is both patronising and counter-productive. Let the person who is affected by the choices make the choices.
If everyone is getting a set amount of money every month, its the opposite. Its telling them that they are valued and that society knows they are a human being and is trying to at least provide them with a roof and food. It allows them a base from which to improve themselves. It gives breathing room.
Study after study have proven that the greatest indicator of where you end up in life is where you start. Start in poverty odds are you will end there.
Its pretty hard for a single mom with 2 kids that works 2 jobs to also go to school, interviews etc. and make a better life. Especially when so many of the low skilled jobs provide no benefits. If she slips once, she is homeless.
Ensuring she has at least her basics met allows her to drop the second job and figure out a way to go to school or learn a skill. Or at the very least it allows her to spend time with her kids each night working on their homework and giving them a chance to break the poverty cycle.
2. How does your suggestion prevent that?