The @feedback attribute basically determines whether writing into the delay line happens before or after reading. For @feedback 0, write happens before read. This means you can set delay times of less than 1 sample, right down to 0 samples (pass through). But you include the output into a feedback loop back to the input within the genpatcher. For @feedback 1, write happens after read. This means you can route patch cords into a loop, but you can't have a delay time less than 1 sample. It may be helpful to open the code view panel (the C button at the side) and select the [delay] object to see what it actually does.
Best way to think of the fourier domain is as a bank of sine oscillators, each one at specific frequency, one for each bin in the spectrum. A spectrum has an amplitude of each oscillator, but also a phase of each oscillator (its angular rotation). Usually we look at the amplitude spectrum visually because it's pretty intuitive -- the left side is how much low frequency energy there is, the right side is how much high frequency energy. But the scale is logarithmic in frequency, which means most of the interesting stuff is way over to the left.
The inputs & outputs for pfft~ subpatchers process each bin of the spectrum in turn. The 3rd outlet of the fftin~ object is the bin number. Bin 0 is the lowest frequency component. You can convert this to the centre frequency of a bin with [* samplerate/fftsize] (see the gen~.bark example).
Within pfft~, the "vectorsize" global variable in gen~ corresponds to the number of bins in the spectrum. So delaying by exactly this number effectively spans an entire cycle of the spectrum; which means each bin is delayed by one frame. That's why the spectral delay examples are full of [delay vectorsize] objects. They're used in much the same way as a [history] object would be used in a normal gen~ patcher. (Delaying by values that are not whole multiples of "vectorsize" would effectively map different bins onto each other, creating a frequency shifter.)
The 1st & 2nd outlets of [fftin~] are the real/imaginary components of a particular bin. You can convert the real/imaginary components to amplitude/phase by [cartopol]. Then amplitude you can do whatever you want to just like a regular signal, except that it only affects that frequency bin. Phase is not as easy to manipulate. Phase coherency is important to maintain sharp transients (high frequency attacks). If phases slip against each other, these sharp attacks become spread out in time, sounding blurry or watery. But if phases are not coherent between subsequent frames you can also get a different kind of burble noise. The phase frame delta/frame accum stuff in the spectral delay is there to reduce this burbliness, by effectively turning absolute phase into phase difference between frames, then accumulating these differences back to absolute phase in the output. But by doing so it can blur the transients.