Is there complex application examples out there that can be considered best practice material? I'm coming from a web environment and not that fluent in C++. About to start a moderately complex dev on an ESP32 device.

I know that there is hundreds of arduino libraries out there but I haven't found a lot of complex actual application examples.

I'm mostly interested in the file structure, separation of concerns and other C++ tweaks that should be considered best practices when coding on embedded devices in a more robust way.

I found the ardupilot GitHub project to be very interseting to look into, but its quite big, and I'm not sure if it would be considered well written code as I can't judge myself.

Can you recommend other great projects to look into?
If you are used to OO (which I guess since you like separation of concerns), do not use the Arduino IDE, since it is very hard to work with multiple files. Instead use e.g. vMicro for Visual Studio.

Separation of concerns (using C++) for the Arduino is not much different than in other languages. C++ has the notion of classes, and fields/functions can be made private, protected and public (simplified).

However, C++ itself is not so easy to learn, mostly because of pointers and related issues. However, it's something to dive in when you want to learn something new.