This is actually an easy one.

Do your requirements state that you *need* to be able to process `A`s without the limiting properties? (Okay, everything is relative, so I'll ask: do you need the capability *badly enough to pay for the extra development time*?)

If yes, then write the extra code. 

If no, then code the simple solution with the more complicated precondition. Preconditions on APIs are a drag, but if you document them there is no question of having done anything improperly. Elegant solutions are nice, but they have a cost, and every cost has to be justified. "I apologize for writing such a long letter, but I lacked the time to make it shorter" can be a valid excuse in professional setting.