Использование System.Object
обеспечивает гибкость (за счет производительности).
Рассмотрим механизмы хранения ASP.NET (Session и Application), они имеют общую структуру
Dictionary<string, object> PropertyBag;
И вы будете использовать их как
PropertyBag["currentCustomer"] = aCustmer;
PropertyBag["visits"] = 0;
Невозможно заменить object
на что-то более сильное, набранное здесь.