I think that `"packoffset() is only allowed inside constant buffer declarations."` delivers more information than `"packoffset() is not allowed on functions."`. Native outputs a similar error, and I don't know of another circumstance where `packoffset()` can be used either.
This is probably too small an issue to argue about, but I don't think I agree with this. The wording as-is has a implication of "packoffset() would be legal if this function was inside a buffer declaration" [never mind that's not actually possible].