I figured it out! The point is that there is no need to remove the data-role = 'none' attribute. It only serves the purpose of telling jQuery not to attempt any upstyling on the element in question. However, if you then do something like
$('.variants').css('display', 'inline-block').selectmenu()
you are explcitly converting the .variants family of selects into a jQuery Mobile select menu so the data-role attribute does not enter into the picture at all. The modified code, which does what I sought is
if (600 > $(window).width()) {
$('.variants').scroller({
preset: 'select',
theme: 'android-
ics',
rows: 1,
mode: 'scroller',
display: 'inline',
inputClass: 'i-txt',
showLabel: false,
width: 40,
height: 20
});
} else {
$('.variants').css('display', 'inline-block').selectmenu();
}