If every object is getting drawned with the second texture. It means that your load texture function is binding the resource been loaded. If you want to draw using the first texture then you need to bind that one.

Yes, but that is really not their intended use. You should always bind the texture you want to draw with before drawing. You can never be sure what other pieces of code (particularly anything living in a library you didn't write) might be doing behind your back.

The best practice is to always explicitly set whatever states/attributes you need when drawing. That way you aren't caught by surprise when some black box function does something without telling you.