As for all there are black and white sides of this model as well same as web parts and add-in models. This article will be discuss good and bad of it.
Works for IoT (Internet of Things)
Modern tend is accessing internet from any device user equipped with such as mobile, tab, laptop, desktop and so on. Even modern SharePoint team sites are responsive there are loopholes. If your requirement is more mobility centric, this would be better option.
Users are still active with the legacy interface
If in a requirement users are still active with the legacy application and finds improvement in the application while its up and running. Developing from the scratch or migrating would be more expensive idea such as in this context. So what you could do is develop client side with SharePoint framework which is future proofed and allowing user to work on both.
Need of long running operations and impersonation
If you have the requirement to run long running operations, this is not ideal method to used with such as provisioning site in SharePoint since browsers does not allows to perform long hooks by default. And other thing is, if you need to perform tasks as administrator or with elevated privileges, this wont be a good idea.
Require high level of app data security
This is all about client side development, means your data finally resides in the browser. If you are looking for higher degree of app data separation and provisioning, this may be not a better option.
Further, ups and downs will continue in later post. Until that, do explore on SharePoint framework.