On my faster swim pace:
I've seen a 10-20 second decrease in the pace of my 100 yard repeats in the past month. I attribute the bulk of this new speed to one drill: the quick catch drill.
I spent all of last summer working on my balance on body position. I spent the off-season focusing on my recovery, entry, and breathing. By January, I was looking pretty good in the water. But I still wasn't going anywhere (at least nowhere fast). Focusing on my catch has allowed me to apply more power to the water using my arms, shoulders, back, and core. It took about a month of doing quick catch drills constantly--the first workout I tried it, I could only do about 30 meters before my arms were exhausted--for me to work the concept into my stroke, but it was definitely worth it.
I recommend doing the following sets (maybe not all at once, though) to help you incorporate the quick catch.
Drill Set 1
25 quick catch
25 fist swim
25 quick catch
25 regular swim
4x25 as fast as possible while maintaining the feel of quick catch
Drill Set 2
8x50 drill quick catch/50 swim (if you can't do quick catch for a full 50 to begin, do alternate 25 drill by 25 swim)
4x25 as fast as possible while maintaining perfect form
Drill Set 3
8x50 fingertip drag, incorporating the feel of quick catch (I love using fingertip drag as a base for focusing on other drill points, because it forces you to swim slowly with relaxed arms)
8x25 quick catch drill with high arm turnover
Quick catch drill isn't the secret to success for all mid-level swimmers, but it is the next step for many of the athletes I'm coaching currently, so I bet that it'll also apply to some of you.
For more on why quick catch is important, read this.