I am setting up Google Analytics transaction tracking and I plan to pass "userID" as a transaction id. While site usually has one-time purchases, there are sometimes users who purchase same product (subscription) more than once. Are there any downsides to this and should I reconsider this?
Providing that you're only passing non-personal, anonymous information as covered here, there shouldn't be any downsides.
This could help identify repeat purchases by individuals, as well as provide helpful information about conversions paths, such as which devices they're using to purchase your products with, as covered here by Google.