Until we have a clear section where we establish that certain conditions are met, then I think so.  For example if the object manager for some reason failed to register that object this could return null.  At that point, a Q_ASSERT on the specific assumption that failed is better than a random segfault later in the code.  Similarly, for run time if the requirements of that function are not met it should bail out (+/- notification to the user) rather than crash.