Yes, standard libraries should follow the standard, but there is a bit of flexibility. The standard does not require a specific implementation of functions, and an implementation can freely add internal functions, attributes ... as long as the requirements are met.
Please note that there is another library concept that complies with the standard, and the library is implemented using only standard functions.
For specific questions below:
Can the standard library provided by one compiler compile with other compilers?
Some will, some will not. An implementation of the standard library can use the built-in compiler functions for some operations, functions that are present on only one platform, and not others ... Some STL implementations can be compiled with various compilers, although, for example, STLPort, Dinkumware (which is also VS, with some VS-modifications)
When we say that a particular compiler is standard, does it automatically mean that the stdlib that comes with it is also standard compatible? Or does it just mean that this compiler can compile standard compatible code written by us programmers?
This means that the library must be compatible, but again, the standard does not provide for the implementation of the library, and they can use non-standard extensions and the like, which will work in one compiler, but maybe not in other compilers. Consider, for example , the implementation of shared_ptr , the reference counter should be updated atomically, but in the current standard there were no atomic operations with integers, so it should be implemented in terms of non-standard functions.
Is it possible to use the standard library provided by one compiler in my project, which uses another compiler to compile the project? Is portability the same as standard compatibility?
Not necessary.