Activating show-paren-mode sets the delay time to show-paren-delay initially, but altering that value later has no effect. i.e., after:
(show-paren-mode)
(setq show-paren-delay 0)
The timer is still set to the original value .125, until the mode is re-activated.
This should maybe be noted in the variable description, or there should be a dedicated function to set the new value, e.g. by turning line 125 of paren.el into a separate function:
(setq show-paren-idle-timer (run-with-idle-timer
show-paren-delay t
'show-paren-function))