We've (very) recently been discussing using that on all platforms to allow variable-sized stack frames, that is, to internally support something like C alloca.
The main motivation for this is that if we do a "dictionary" style generics implementation (pointers to code instead of cookie-cutter templating out each instantiation),
there will be allocations that escape analysis *could* stack allocate, except that right now it demands known allocation sizes.
(to the inevitable question, "Why do a dictionary-style generics implementation?"
(1) we're worried about binary size;
(2) we're worried about compile times;
(3) it is somewhat more difficult; this helps us find more corner cases before they find us;
(4) we can regard templating as a time optimization (figuring out when/where to use it is a second issue);
(5) it's the more-general technique, having it as a backstop might allow use of more powerful/expressive generics, for example
(a) methods generic in a method-specific type parameter, currently not part of Go generics because it does not mix well with templating;
)
To the other question, "what about assembly language that already uses BP?", we've recently added the ability to support two calling conventions within Go programs, and part of that story includes the ability to autogenerate adapters for assembly language that (by default) uses the "old" ABI. Assuming we use BP to enable variably-sized stack frames, any assembly language using BP will certainly be accessed through these adapters until it is rewritten.
And of course these are plans, not promises, but it's a (my) best guess at what the future implementation will look like.