I've looked at this. So far no real clue.
The maddening thing is that the code that triggers single suffix in
the non directory case is the same in freebsd's bmake and ours,
so obviously it doesn't trigger when there's an extra directory, as
the paths don't match.
I'll have to check if there's
OpenBSD "make" does not correctly apply single-suffix inference rules
to paths containing slashes. Double-suffix inference rules work
correctly in this situation. Here's a little demonstration, starting
with a double-suffix inference rule and a sub-directory:
$ mkdir a
$ touch a/foo.abc