@salines - I don't have the code in front of me, but IIRC the plugin scrapes data off the web page in the order it is found. So if Goodreads order by most popular genre first, that will be in the list. However the plugin will "skip" any genres it does not have mapped and get the next off the list instead.
If you have a specific example where this is not the case, give me the details. A link to the goodreads page, screenshot of your mappings for that genre (or copy of your Goodreads plugin configuration settings file) and what tags you ended up with would do it.
Not sure what you mean in your second question. If you want to control how many genres are retrieved from Goodreads, calibre already has a setting on the Downloade metadata configuration dialog for this, something like "max tags per book" or something. However be aware that if you have "other" different tags on the book already then they contribute to the count. That is calibre code that I have no control over. Because of the complex interdependencies it would cause with that existing calibre code I haven't bothered to try to make how many genres retrieved from Goodreads configurable.