I applied the patch, and the paste-on-click behavior is gone.
However, if you try your original example again, you'll find that nothing happens at all, when we're expecting an "a" to be inserted.
As the documentation of mouse-on-link-p says, a string or vector return value indicates the event to translate the original mouse-1 click into. In emacs24, that translation was done in mouse-drag-track:
(let (on-link (and mouse-1-click-follows-link
;; Use start-point before the intangibility
;; treatment, in case we click on a link inside
;; intangible text.
(if (or (vectorp on-link) (stringp on-link))
(setq event (aref on-link 0))
(setcar event 'mouse-2)
;; If this mouse click has never been done by the
;; user, it doesn't have the necessary property to be
;; interpreted correctly.
(put 'mouse-2 'event-kind 'mouse-click)))
(abridged from mouse.el:791/901 in Emacs 24.3.1)
I think mouse--down-1-maybe-follows-link should do something similar.