Problem with areas still persists. The provided solution was incorrect.
Area name should be determined from current http request's routedata->DataTokens["area"] rather from type's namespace.
If controller's namespace doesn't contain ".Areas." part this check will fail. This solution also forces developer to include ".Areas." namespace into his namespace structure without any real sense.