When we map a view inside the mediator map, is the reference
going to be there as long as the view is on stage, like
singletons?

That’s right, as long as SomeView is on stage,
SomeMediator will have a reference to that instance of SomeView. If
you remove SomeView from stage, the Mediator gets removed too, if
you don’t set autoRemove to false when you map the view to
the mediator.

If you add a new instance of SomeView to the stage, a new
SomeMediator will be created, and it will have a reference to
SomeView’s new instance.

I have separate view for each button and a mediator that puts
signal to empty variable inside.
What happens when I inject that button inside the mediator of view
container?
How to ensure that the same instance of the button is there?

It doesn’t make much sense in my opinion, but if you want,
you can try this:
If SomeView is already on stage and you wanted to inject the same
instance of SomeView into a Command, you’d have to map it
like this inside SomeMediator:

then dispatch an event to trigger SomeCommand:
dispatch(new SomeEvent(SomeEvent.LOAD_SOMETHING));

In SomeCommand you inject SomeView:

[Inject (name = "someview")] public var someView:SomeView;

Injecting SomeView into ParentMediator would require something
similar to the above mapping, but, if, for some reason,
ParentMediator gets initialized after SomeMediator, that
wouldn’t work, I think.
If you added/removed views dynamically, none of the above would
work, I guess. You’d have to try it out.

Anyway, I don’t think it’s a good idea to inject
child views into their parent view’s mediator. Can you
explain why you need to do this?
Also, why would you like to inject views into commands? If you
really need to work on views inside a command, you can pass the
views via the event’s payload. Similarly, you could let a
ParentMediator be informed about its view’s children via
events.