I gave another shot for this problem, as someone who (at least currently) works with Mathematica 11.
If one wants to get control over the length of the arrows in VectorPlot, the way to do it is call for the VectorScale option with a slot:
VectorPlot[
{vx,vy},
{x,y}\[Element]reg,
VectorScale -> {Automatic, Automatic, #}]
& /@ {Function[Log10[#5]]}
The 5th slot is Norm[{fx,fy}]. But as the documentation to Mathematica 11 tells:
When using an explicit sfun, positive values are automatically scaled to lie between 0 and 1. For other values the vector is not drawn.
I.e. typing Log10 as I did wouldn't give good results in all cases. The correct scaling function for one's specific vector field and specific region of plotting is determined by the minimum value of Norm[{fx,fy}] (the shortest arrow in the plot) and maximum of Norm[{fx,fy}] (the longest arrow).
This makes the process of scaling vector field's arrows a task to ponder about each time drawing a vector field.
I guess that Mathematica 12's new VectorScale arguments are designed to specifically skip and save you from all this math calculations.
The bottom line, as I see it, is not to fiddle with it the way I tried to, but rather to do it as @Gianluca Gorni did, tuck your vector field inside a scaling function.
Gianluca Gorni, thank you for your answer.