I have 3 questions:
There's a problem with your questions, and that is everyone will differ on things like this. The best I can do is give my opinion, but I personally think it's rather self explanatory.
Micro frameworks usually have a few useful things in them, such as routing, templates etc. Allowing for a better structure of code and files, without you having to build it yourself.
Personally I'd only ever use them for small projects that have to be finished quickly and I want whatever feature they have. i.e. routing allows for clean urls such as
Full-stack frameworks tend to have far more features, but they also tend to be a lot heavier. From my experience they make it easier to achieve many things and help reduce repetitiveness. This helps take any medium to large scale project and bring down the time it takes to build. HOWEVER, as I mentioned they're heavier, meaning if your website is very large, you may end up with slower load times.
I'd personally use frameworks for medium-sized projects. I quite like Laravel. Having Eloquent, Query Builder, Routing, Blade templates, (easier) Caching, Queuing, Migrations & Seeding and Form Validation are the biggest things for me.
I can't think of any reason why I'd spend so much time when there are ones already made that are good enough. This is really if you want something specific or unless you have such a good idea that you should make another framework for others to use. - I'd just try to contribute to existing ones. There probably are reasons to build a custom one.
It's all mostly self explanatory?
Building a small project but want some features quickly? Go with a micro-framework.
Building a medium project, want some features to bring down development time? Go with a full framework.
Building a large project with very high traffic? Consider not using a framework at all, or you could have more servers & use a framework, but that can get expensive.