In reply to mark k..

The API to detect if a widget is being use is is_active_widget.
The problem with is_active_widget is that it will return true if the widget is active on any page regardless if it is present on the current page or not. http://stackoverflow.com/a/11060324/850651

...just because you at one point in time do not have the shortcode or widget on page is idiotic because in an hour you might want to have it but what is the chance you will remember to remove it from the “bad assets” list?
Perhaps it would be best to wait till you have finished making large content changes before you start optimizing it.

It is actually not hard at all for a plugin or a theme author to write proper code.
I don't see how technical constrictions make a plugin bad. We are not talking about code quality. I feel it is not right to just say if a script/style is being loaded on every page then the plugin sucks.

If it is hard to do things properly with ACF then guess what, just don’t use ACF.
Most plugin authors want their plugins to work with most other plugins and not restrict user with which plugins they can use it with. The point was not about ACF but custom meta fields themselves. It is very difficult to know when a shortcode is added in meta field.