Why not just swim long repeats if your fitness permits and try to improve technique while you swim?
Because your motor control (new circuits in the brain to control your movements) needs to first learn to be precise before it can handle being fast or powerful. Start small, be careful, and once you can do it successfully consistently on many small repeats, then incrementally add speed or power to the movement to make it stronger.
Let me make the argument for working on small pieces this way…
Let’s say your goal is to swim a 2000m course which may take approximately 2000 strokes. But, if you are concerned with efficiency that needs to be composed of 2000 beautiful strokes.
Before you can take 2000 consecutive strokes like that, you need to first practice taking 500 consecutive beautiful strokes. And before 500, you need to practice taking just 100. And before 100, you need to practice taking just 20. And before 20, you need to practice taking 8 (about what you can do without breathing) and before 8, you need to practice taking just 3 beautiful strokes.
In this way, I urge you to devote yourself to executing many sets of 3 marvelous strokes. When you can produce sets of 3-strokes consistently, then work on 8-stroke sets (without breathing). Then work on full lengths (with the challenge of breathing inserted in there). THEN you can more confidently aim to swim many consecutive lengths with strokes that feel more like what you want to them to feel like.
Master control of your body in very small pieces and then make those pieces incrementally bigger (longer distance, faster tempo, or higher power) until you can maintain the standard for multiple lengths. Then distance swimming ability will fall into you hands almost effortlessly.