We work with indexed views quite a bit, and our applications are dependent on them for acceptable performance. However, once an application depends on a database object, it cannot be removed without breaking the application.
With an indexed view, if one needs to modify a base table, one needs to drop the indexes and run an ALTER VIEW statement with the full SELECT statement in the ALTER VIEW statement just to remove the SCHEMABINDING so that the base tables can be worked with.
Having to have each indexed view's full source code on hand just to remove the SCHEMABINDING can be problematic. For example, we have indexed views on replication subscriber tables. We found that it is best to de-index and un-SCHEMABIND the views when we need to reinitialize the subscriptions (even if the table schemas have not changed, we would get time-outs on the bulk loads against the indexes).
It would be nice if we could set up the pre-snapshot script with commands that could drop the view indexes and remove the SCHEMABINDING without having to have the SELECT statements of the VIEWs in the script. Similarly, the post-snapshot script would put back the SCHEMABINDING and the indexes.
We could readily automate a lot of processes that we currently have to do manually if SCHEMABINDING was a switchable property of VIEWs (and probably all other object types that have the SCHEMABINDING option).