It all depends on what you want to achieve?
alternate states are used for comparison between 2 charts.
Slider can be used as Date Slider between Date, Month's, year or Quarter or any other dimension etc
Custom reporting would be like an Ad-Hoc reporting where a user can switch on/off to see the dimension/measure added in Master Item
Geo mapping is used for showing data set points around the globe/country/city
There are many more extensions and widgets.
Good thing i they all are Open Source, so that you can go inside the .JS script and edit it as per your need.
We usually use extensions when we feel that our data can be better displayed and with more features in a different manner besides the qlik vizualizations. You can try exploring different extensions present in the Qlik Branch.(qlik.branch.com)
Extensions are created by developers who feel they can represent their data in a better fashion.hence you can find it that way too.
It moves away from the usual qlik visualizations that everyone uses, hence it might look good.
Since it is not supported by Qlik, it might not work properly with your project.
It might not get updated or stay working as qlik releases the versions.
Since it is pre defined, you might not find it suitable for your project or will not be in a position to add features.
These are the things which comes to my mind now.
I have used both extensions and widgets in my applications.
One important point to note is, that extensions are re-usable components. They can be multiple times in various sheets and apps. Whereas widgets are to be created specifically for each requirement.
Widgets require Html and css knowledge. Extensions require angularJs.
Hope this helps.