The Assets folder is a root folder where you put all of your assets (whether you've developed them or they're from a third-party). How you organize files within the Assets folder is up to you. My Assets folders usually end up looking something like this:
Assets/
AcmeGames/
SomePackage/
Examples/
Scripts/
Textures/
SomeOtherPackage/
Scripts/
{MyStudio}/
Shared/
Scripts/
{MyGame}/
Animations/
Audio/
Meshes/
Scripts/
Shaders/
Textures/
XYZ Studios/
SoundFXPackage/
Audio/
Each package is organized into a subfolder named for the author of the package. You'll note that I organize the files for the game I'm working on into Assets/{MyStudio}/{MyGame}
. I feel this approach is clean and easily to navigate; it also works best with Visual Studio's ability to automatically generate namespaces based on the folder structure. Some teams don't want to have to navigate into a subdirectory and prefer to put the folders for their game in the Assets root, usually preceded by an underscore to ensure they sort at the top of the alphabetical order:
Assets/
_Audio/
_Animations/
_Scripts/
_Textures/
I do not recommend this approach as I find it messy and it's not always obvious which assets were developed internally and which are from third-party sources.
If you have a large number of third-party packages, you can put them all in a subfolder:
Assets/
ThirdParty/
AcmeGames/
Misc/
Odin/
Microsoft/
Photon/
PlaceholderSoftware/
Unity/
Vuforia/
XYZStudios/
Otherwise, the only way to keep packages out of the Assets folder is to configure them for compatibility with the Unity Package Manager, so that they can be installed in the Packages folder. I've never seen a third-party asset that is configured as a Package Manager package, but in theory you can manually create Packages from third-party assets.
I've read that moving the folders will cause problems down the line, if packages have hard-coded paths or during updating. This info is a few years old by now, is that still a real concern?
I don't often encounter this as an issue. If you do run into such an issue, it's usually easy to fix. What typically causes difficult problems is if you modify any of the files in the package, since your changes will be overwritten and lost when you update the package.