Any weakness when performing SHA-256 repeatedly? Is it significantly easier to reverse a SHA-256 hash if you know that the input was a 32 byte output of SHA-256?

I assume for most outputs of SHA-256 there will be zero, one or two possible 32 byte inputs.

Mapping and storing all of the values is infeasible, but I am still worried that constraining the input to being exactly 32 bytes may weaken SHA-256.

Is this a valid concern?
Answer

No, that would not be possible. It would be very weird indeed if a hash was suddenly invertible if the input was of a specific form - it would basically mean that the hash would be broken. Iterating over all the possible values of those 32 bytes is certainly not an option either.

Peculiarities

That does not mean that such a structure doesn't have it's peculiarities though, the first link provided by mikazo is a good summary of what to expect.

If you want to avoid such peculiarities then I would suggest you follow the suggestion by CodesInChaos to use a HMAC construct with a fixed key instead of SHA-256 directly. As e.g. length extension attacks not feasible with SHA-3 (Keccak) you can probably use that without reverting to a HMAC.

Notes


The inner state of SHA-2 is basically the output (after padding &amp; inclusion of the message size); so a 32 byte input is certainly not an issue in itself, as the inner state is exactly the same size.
Your scheme may have some properties that can be compared with a hash based PRNG