+0
3. Bob is only allowed to read novels from the early twentieth century but can listen to whatever music he chooses, whereas Steve is only allowed to listen to music from the fifties but can read novels from whatever period he chooses.
+0
I'd invert the 'only' and 'allowed' both times, put commas before the two 'but's, and change the comma before 'whereas' to a semicolon.

But that may be just me.
+0
Here's my stab:

3. Bob is allowed to read novels only from the early twentieth century but can listen to whatever music he chooses, whereas Steve is allowed to listen to music only from the fifties but can read novels from whatever period he chooses.

A comma is generally required after the conjunctions (for, and, nor, but, or, yet), but if the subordinate clause is an intergral part of the flow of meaning, the comma is optional. (Note, 'but (he) can listen'. The subject (he) is implied, which means "but" introduces integral information.)

A note on the conjunction "whereas", it requires a comma, always, never a period, or punctuation that houses a period, such as a semi-colon ( ; ) or a colon ( : ) . . . to my knowledge.

Try,

Is this a perfectly correct, grammatical sentence?
Teachers: We supply a list of EFL job vacancies
Comments  
Bob is only allowed to read "novels from the early twentieth century", but can listen to whatever music he chooses, whereas Steve is only allowed to listen to "music from the fifties", but can read novels from whatever period he chooses.
Students: We have free audio pronunciation exercises.