I think the style_formats_merge
will merge the styles YOU create; and add them to the default WP/TinyMCE styles that are included in core.
But, it doesn't know what other styles other plugins may have added. That's why you have to first check for the existence of any other custom style formats.
In other words.. if you set the option to true
in your theme; then it will create your custom styles, and load them onto the end of the core styles. This is because you are calling the merge from within your theme code.
If you set it to false in your theme.. then only your custom styles you created will be available... and core styles will be overwritten.
But, when you are loading AFTER all plugins... you'll have to first check for the existence of an array coming into that filter function.