Personally, I'd take a good understanding of functional programming as a substitute for a good understanding of pointers. I mean, the point of the exercise isn't to find out how well they know pointers (they'll rarely use them anyway). It's just a way to figure out how smart they are.
When I was doing this, groking pointers was required and functional programming unfortunately just wasn't an option. E.g. during this period LISP was anathema (even to the point where one project at the beginning of this decade died because it could only be done in something that productive but use of it was rejected for no good reason).
So my test was for understanding pointers as well as figuring out how smart they are at programming.
Plus as noted when things get ugly (e.g. in some debugging situations) groking pointers is required and as long as Johnny von Neumann's initial hack architecture rules that will remain true.
Today, I would most certainly take someone with "a good understanding of functional programming as a substitute for a good understanding of pointers", I'd just make sure a few also grok pointers and other low level stuff.
(I am so happy we have exited the Dark Age of Programming Languages.)
Back when I was doing this C and/or C++ was required (in general and for the job).
Today, I don't know what I'd do (besides ask them to do it with pointers anyway, pseudo-code is fine for this problem). Someone from a Javaschool might work out well, but they'll be lost in some harder debugging situations, so I guess I'd try to make sure they'll ask for help when it gets that messy and make sure I had some uber-programmers to support them (such as myself :-).
I have a friend whose test is to sort a linked list using any sorting algorithm (it can be bubble sort) and any language (excluding trivial calls to library functions). It's fairly hard in C, trivial in ML or Haskell, and this is the point of the test: if you're able to use a high-level language, this is a benefit.
Errr, one of the points of my test is "do you grok pointers?" Which is an hard or impossible thing for many people and is needed in some subset of programming jobs.
But I'm sure many fewer today, note that I started out with punched card FORTRAN "IV" on an IBM 1130 and then did a lot of UNIX on PDP-11s. Fortunately I was able to play with LISP starting a couple of years after that first experience.
Today the world is almost entirely different, e.g. it's hard to buy a processor that had less L1 cache than the max address space of those machines' macroarchitecture.
ADDED: Or as I like to say, echoing someone I forget: