This may get you a little closer. I still don't see the point, but I am getting the feature to show up in the feature layer. Note... I adjusted the json a little and changed the point and the spatial reference to a known point:
NSString *ld = @"{ \"geometryType\": \"esriGeometryPoint\" }";
SBJsonParser *parser = [[SBJsonParser alloc] init];
NSDictionary *layerDefinition = [parser objectWithString:ld];
NSString *fs = @"{ \"features\": [ { \"attributes\": { \"key\": \"someValue\"}, \"geometry\": {\"x\":-9407733.852498,\"y\":4735858.166659,\"spatialReference\":{\"wkid\":102100}} } ] }";
NSDictionary *featureSet = [parser objectWithString:fs];
AGSFeatureLayer *featureLayer = [[AGSFeatureLayer alloc] initWithLayerDefinitionJSON:layerDefinition featureSetJSON:featureSet];
featureLayer.outFields = [NSArray arrayWithObject:@"*"];
[self.mapView addMapLayer:featureLayer withName:@"FL"];
NSLog(@"features: %@ ",featureLayer.graphics);
AGSPoint *point = [AGSPoint pointWithX:-9407733.852498 y:4735858.166659 spatialReference:self.mapView.spatialReference];
AGSEnvelope *extent = [AGSEnvelope envelopeWithXmin:point.x ymin:point.y xmax:point.x+50 ymax:point.y+50 spatialReference:mapView.spatialReference];
[self.mapView zoomToEnvelope:extent animated:YES];