The correct way is what you wrote:
mycusto = GW_NEW_THEME_CUSTO("style='font-size:80% ; width:20%'")
But any usage of GW_USE_THEME_CUSTO_ONCE() will reset the GW_USE_THEME_CUSTO().
The internal GW mechanism for THEME_CUSTOs uses a token: GW_USE_THEME_CUSTO() sets the token to -1 (infinite), and in this case any GW_ADD_CONTROL will not reset the token, the CUSTO will be still there for the next GW_ADD_CONTROL.
But if you use GW_USE_THEME_CUSTO_ONCE() the CUSTO token is set to 1: the next GW_ADD_CONTROL after that will consume the token, then the second to next GW_ADD_CONTROL will have no CUSTO.
You need 2 things: 1. integrate the CUSTO of mycusto in your GW_USE_THEME_CUSTO_ONCE() ; and 2. repeat the GW_USE_THEME_CUSTO(mycusto) after you are finished using your last GW_USE_THEME_CUSTO_ONCE().
Also note that some controls do not support well the CUSTO (in fact the CSS "style") you are trying to use, that is typically the case of SLIDER, CHECKBOX, RADIO-button and FLIPSWITCH.
The reason is that these controls are composed of different jQM elements (a fieldcontain div, a label, the control itself).
Again I would not consider this solution to reduce the size of all controls by CSS as a good way of making your page adaptive.
I am working on bringing better adaptiveness and responsiveness to GW, but I understand you want to explore solutions on your side.