I hate when I do this to myself. I don't know the exact answer to your problem but I have some ideas we might explore. I have no idea if they'll work because I don't have your device nor a 300 Mb/s capable router, so I can't test.
I notice that r8712u has a number of mysterious loadable parameters and I wonder if any may be helpful:
You can look at how these parameters are set in your system.
$ modinfo r8712u
author: Larry Finger
description: rtl871x wireless lan driver
vermagic: 3.2.0-24-generic-pae SMP mod_unload modversions 686
parm: ifname: Net interface name, wlan%d=default (string)
parm: initmac:MAC-Address, default: use FUSE (charp)
Then see how a specific parameter is set (0? YES? 0x42???) with:
I have looked for documentation in my system as well as on line and in a copy of rtl8712 I downloaded from Realtek. So far, I have not found any explanation.
You use these parameters temporarily with:
Make it permanent with a conf file: /etc/modprobe.d/r8712u.conf:
sudo modprobe -r r8712u
sudo modprobe r8712u some_parameter=1 <--or whatever is called for
I will continue to search for a clearer description of these parameters and suggest you do the same.
options r8712u some_parameter=1
Finally, I don't discount the possibility that the driver mis-reports the connection speed. I have seen such reports, but not specifically about r8712u that I recall.
I will especially be interested in:
note to Chili: os_intfs.c ??