To summarize,
* the original issue was timing/async related; by the time the Meteor method call's callback executed, the helper function had already returned
* Meteor methods can return arrays. You can think of Meteor method calls as regular AJAX calls from your client; the second parameter passed to the callback is the result.
* Meteor method calls are not reactive and should generally not be called from within Template helper functions. Typically Meteor methods are called in response to a user action, such as a button click.
You can send data to the client using a method call but then you are in charge of displaying that to the user, just like with a normal AJAX call.
In your original example you have the Meteor.call in a template helper function. If you called that helper from HTML code, ex. `<div>{{dataFromServer}}</div>`, the Meteor.call would execute every time the `set4` template was rendered. This is probably not what you want since you have very little control over when the `set4` template is rendered (it will get re-rendered any time a reactive component changes) and you'd have to manually update DOM elements in the callback since the helper function has already completed.
As Andrew and Ran pointed out, collections are reactive and are designed to publish sub-sets of data while automatically keeping that data up-to-date.