Before iOS 5 and OSX 10.7 scalar properties can’t be auto-generated and you had to add setter and getter implementations, which cause some penalty. Auto-generated properties are optimized. I’m not aware of any other penalties.
Scalar and non-scalar properties are represented by the same types in DB, so there will be no change in DB’s size.
You should choose when to use scalar depending on the way you’re going to access these properties. For example, you will need to wrap scalar properties in cocoa object if you’re going to add them to collection (NSArray, NSSet, NSDictionary).