** buffer-substring now runs the hook buffer-access-fontify-functions,
calling each function with two arguments--the range of the buffer being accessed. buffer-substring-no-properties does not call them.

If you use this feature, you should set the variable buffer-access-fontified-property to a non-nil symbol, which is a property name. Then, if all the characters in the buffer range have a non-nil value for that property, the buffer-access-fontify-functions are not called. When called, these functions should put a non-nil property on the text that they fontify, so that they won't get called over and over for the same text.