Clarification about setters

Often newbie ember developers produce code like this:
```javascript
fullName: function(key, value) {
    console.log('fullName called!!!');
    // setter
    if (arguments.length > 1) {
      var nameParts = value.split(/\s+/);
      this.set('firstName', nameParts[0]);
      this.set('lastName',  nameParts[1]);
    } else {
      return this.get('firstName') + ' ' + this.get('lastName');
    }
}.property('firstName', 'lastName')
```

Notice `else` statement. So after first setting this property it's value become `undefined`. Example -- http://emberjs.jsbin.com/quha/2/edit

P.S. English isn't my native so feel free to correct me.