You could do this: create a new style and then in a plugin using hook bbcode_fetch_tags:
Code:
global $style;
if ($style['styleid'] == X)
$tag_list['option']['color']['html'] = '%1$s';
where the X is the new style id. I think this works because posts are cached by style. If you used a profile field instead I don't think it would work because of post caching.
Obviously this isn't a good solution if you already have a number of styles that a user can choose. I'm not sure where you are putting the code in your example, maybe there's another way to do it (like maybe you could replace all <span color="xxx">whatever</span> in the post text).