Oh, sure.  I don't think 'true' hurts me at all, it just looks goofy.

I'm curious, though, why do you consider this to be a case of shenanigans?  iphone_applications has many iphones, which in turn has many conversion_attributions.  It seems reasonable to me to want to partition by a grouping of iphones (by iphone_application_id) rather than by iphone_id, since the number of iphone_ids is prohibitively large.  It also doesn't seem like we should have to denormalize the table in order to make partitioned happy.  Even if iphones wasn't itself partitioned, we'd still need to use a function if we wanted to make a meaningful check constraint.

Anyway, that aside, I'll go ahead and change our check constraints for those tables to 'true'.