A literal is a declarative object, however I think that maybe you are getting hung up on a distinction that primitives and objects. Primitives are objects and can be seen them as objects easily but due to there notation and lack of members, it can be easy to see why they could be perceived as not objects. Therefore it easy to see why it could be thought that a literal is not an object because literals usually define primitives (not many complex data structures are easy to define in literals).
However, a primitive is an object (no useful reason to not define them as objects) because it is a member of a type. Therefore since is just a static definition of an object they are also an object we just don't interact with them in the same way as other objects because they are static.
While the idea that a literal is not object probably won't cause any problems in code it can make OOP more complicated especially since the idea of OOP is that we should interact with object in programming because that is how we interact with everything outside of programming.