Hi,
Yes. Using the "additional" mechanism you see in the global cart fee plugin, you can have as many discounts as you want. You just need to give a different key to each discount in the additional array.
Now, if you want to use discounts, you can only have one discount per product. In that case, you can implement the onSelectDiscount(&$product, &$discountsSelected, &$discounts, $zone_id, &$parent) event in a plugin. In $product you'll have the data of the product, in $discountSelected you'll have an array of discounts already valid (based on how you configured the discounts that can potentially apply to the product) and the system will use the one with the smallest key inside the array with the smallest key in there.
So what you can do is create one or several generic discount(s) that by default apply all the time, and then in your code, you can remove them from $discounts if the conditions are not met or modify their amount based on your needs.
Note that doing it like that, it means that the discount will apply directly to each product, even before they are in the cart and you can have one discount per product, so you can have several discounts in the same cart but for different products, basically how discounts normally work in HikaShop.