The old package system definitely sucks. The new system has promise but until it works for asset store assets it's a bit limited.
You can actually use F# quite well in Unity, I've done it, you just need to develop in a separate visual studio solution. Debugging is a bit of an issue too but it is a reasonable experience overall.
You can also develop native plugins and doing so with C or C++ for certain things isn't uncommon. In this case you mostly want to avoid interacting with Unity APIs though and just write standalone code that Unity code calls into.
There's lots to complain about with Unity but it's not all bad.
You can actually use F# quite well in Unity, I've done it, you just need to develop in a separate visual studio solution. Debugging is a bit of an issue too but it is a reasonable experience overall.
You can also develop native plugins and doing so with C or C++ for certain things isn't uncommon. In this case you mostly want to avoid interacting with Unity APIs though and just write standalone code that Unity code calls into.
There's lots to complain about with Unity but it's not all bad.