This study focuses on issues related to the evolutionary design of task-allocation mechanisms for swarm robotics systems with agents potentially capable of performing different tasks. Task allocation in swarm robotics refers to a process that results in the distribution of robots to different concurrent tasks without any central or hierarchical control. In this paper, we investigate a scenario with two concurrent tasks (i.e., foraging and nest-patrolling) and two environments in which the task priorities vary. We are interested in generating successful groups made of behaviourally plastic agents (i.e., agents that are capable of carrying out different tasks in different environmental conditions), which could adapt their task preferences to those of their group mates as well as to the environmental conditions. We compare the results of three different evolutionary design approaches, which differ in terms of the agents' genetic relatedness (i.e., groups of clones and groups of unrelated individuals), and/or the selection criteria used to create new populations (i.e., single and multi-objective evolutionary optimisation algorithms). We show results indicating that the evolutionary approach based on the use of genetically unrelated individuals in combination with a multi-objective evolutionary optimisation algorithm has a better success rate then an evolutionary approach based on the use of genetically related agents. Moreover, the multi-objective approach, when compared to a single objective approach and genetically unrelated individual, significantly limits the tendency towards task specialisation by favouring the emergence of generalist agents without introducing extra computational costs. The significance of this result is discussed in view of the relationship between individual behavioural skills and swarm effectiveness.