Your diagram isn't actually cyclic. A references B and D, C references B and D. There's nothing wrong with that in any normalisation I'm aware of.
I'm not sure if cycles are specifically forbidden, but they're extremely difficult to deal with because once you've set up a cycle with referential integrity (assuming all references are non-optional) you can't actually delete any of it without disabling the constraints while you do it. So I'd try to avoid them if possible.