Okay, first, the logical process: if performing a task is never bad, but could be good; then it follows that it is beneficial to perform that task. Likewise, if NOT performing a task is often fine, but sometimes bad; then it follows that it is not necessarily beneficial to perform that task. It is safe to conclude that where a task follows both of these statements, then it is best to adopt the habit of always performing said task.
Language standards for C & C++ do not dictate implementations in ASM. They do not state what assembly instructions should be the result of compiling any language feature. Doing so would negate the concept of portability to other platforms. Part of C's success is the very fact that it can be ported to compile code run natively on another architecture. Cross-compilation toolchains are specifically intended for this process. This is part of what makes C & C++ great.
Not every architecture is the same. Not every ASM procedure uses 'ret'. Occasionally coroutines are implemented this way. Some architectures instead use different instructions that do not return but rather wait or even make a call to a parent. Even on x86 you cannot expect that a function will always return, particularly if something happens which causes it to abort. Occasionally this is even an intended execution path. Also consider that it is possible that an architecture to not, in fact, even have the 'ret' instruction in the first place.
Tools are designed for multiple purposes. Especially in the case of architecture-specific tools, it is unwise(even ridiculous) to think that they would be poorly designed because they do not conform to the expectations of someone unfamiliar with their use or the reasons that they might generate warning, error, or fault messages. Using a 'return' statement in a function denoted to return 'void' may matter little to the compiler but it could end up meaning quite a bit to some additional, external tools. If the use of a tool ends up causing you to adapt to become a better & more consistent programmer by providing more explicit instructions in your source, then I do not see that as a fault in the tool.
Please note that Firefox is designed to be cross-platform and is therefore not dependent upon a compiler that it only available on one platform. Further, most cross-platform projects target non-Windows systems first and are later ported to Windows. A 'solution' file provided for VisualStudio is not provided because development took place using VisualStudio or its compiler but because others who are not part of the primary development team may desire to use it for their own development & compilation. This is a specific case, though, and probably not your intention.
I do not mean to nit-pick but only point out that there are many, many large projects that, due to multiplatform requirements, must remain compiler-neutral. In fact, most very large projects, especially those that have a diverse development team spread across the world, with different native languages & timezones, cannot rely upon any specific environment configuration and many do not rely upon a single compiler. This covers pretty much every FOSS project worldwide, which constitutes more code than every proprietary corporate project world wide. It is, in fact, only the minority proprietary projects which adhere to your ideal of the use of #pragma as a preference.
Please remember that the reliance upon #pragmas is reliance upon something which cannot be standardized. Because many are compiler-specific, it locks you into use of that compiler. That is to say; sometimes the choice of compiler for a large project is not because the project started with that compiler but because some feature essential to its proper compilation & functionality is specific to that compiler. This effectively traps the development team(who will often complain, loudly). Dependence upon #pragma is a dangerous thing as it is akin to designing in a feature which is reliant upon the existence of a bug. Such a practice is indeed far more common on Windows, as it is far more reliable like manner, but it is not a practice that should be taught to others.
You are an intelligent person, ArkPhaze, and I have enjoyed reading your many posts on these forums for quite some time. However, I am beginning to wonder what kind of education is being forced upon you outside of this forum. Any educational instructor who preaches such things should be beaten with their own text books, repeatedly. Any authors who write text books with similar information should likewise be beaten with them, also repeatedly. If indeed this is the kind of things that you are being taught, I should very much like to have a word with your instructors as I take it as a great insult to teach students information which is, at best, misleading and at worst, wholly incorrect and potentially dangerous to their future, careers included.