Sumant,
In writing GSLL, I've tried to adhere to the philosophy of providing a good Lisp interface to GSL as it exists in the latest release. When I've had ideas on better ways to do GSL, I've restrained myself from putting them in GSLL. So, there may well be ways they could have made a better, more versatile, etc. library, but I have not tried to implement them. I've chosen this policy in order to limit the amount of work required for GSLL, which has been substantial as it is.
Specifically with regard to FFTs, the 2+ dimensions case may be very useful, but I don't see that GSL has done it, so I will avoid it in GSLL. The stride is there in GSLL because it's in GSL; offset is not.
So where does that leave your good ideas? A lot of what you're talking about I think can be helped along by having a mechanism for array creation, slicing, concatenation, etc., and perhaps another chunk by a port of fftw that is compatible with GSLL arrays. As you have seen and we have discussed, there has been a lot of discussion on array utilities and they are a highly requested feature. I have given this a lot of thought recently and decided there needs to be a separate system to do this, in part because I was uneasy in adding things to GSLL that weren't part of GSL and in part because I realize the extent of what needs to be done really justifies a separate system (or more likely, systems). I have not had a chance to create and test much code, but I hope to soon.
I'll continue to work on the FFT port and let you work it over before I pull it into master. Then I'm going to try to pull together the beginnings of the array system; it will take a while to get that settled but I think it will be worth making this as versatile as possible.
Liam