Task allocation (TA) is essential when deploying application tasks to systems of connected devices with dissimilar and time-varying characteristics. The challenge of an efficient TA is to assign the tasks to the best devices, according to the context and task requirements. The main purpose of this paper is to study the different connotations of the concept of TA efficiency, and the key factors that most impact on it, so that relevant design guidelines can be defined. The paper first analyzes the domains of connected devices where TA has an important role, which brings to this classification: Internet of Things (IoT), Sensor and Actuator Networks (SAN), Multi-Robot Systems (MRS), Mobile Crowdsensing (MCS), and Unmanned Aerial Vehicles (UAV). The paper then demonstrates that the impact of the key factors on the domains actually affects the design choices of the state-ofthe-art TA solutions. It results that resource management has most significantly driven the design of TA algorithms in all domains, especially IoT and SAN. The fulfillment of coverage requirements is important for the definition of TA solutions in MCS and UAV. Quality of Information requirements are mostly included in MCS TA strategies, similar to the design of appropriate incentives. The paper also discusses the issues that need to be addressed by future research activities, i.e.: allowing interoperability of platforms in the implementation of TA functionalities; introducing appropriate trust evaluation algorithms; extending the list of tasks performed by objects; designing TA strategies where network service providers have a role in TA functionalities' provisioning.