My assumption was technically right, but...
On checking through my build directories, I found that in the dirty case
(i.e. where ruby built) there were a bunch of -lruby-static, and, of
course, libruby-static.a is generated by ruby itself. The linker, as is its
wont, browses around the system
It looks like putting -L%b in LDFLAGS solves the problem, since that
occurs in the linker lines before -lruby and -lruby-static, and so %b
gets checked out first.
I've uploaded updated .info and .patch files to my experimental
directory: